【发布时间】:2015-02-12 19:08:32
【问题描述】:
将 python 的 networkx 库生成的这段代码作为有效的 GEXF 文件提供,我在文档中找不到任何地方我将 xmlns:ns0 更改为 xmlns:viz... GEXF 兼容的命名空间。
<?xml version="1.0" encoding="utf-8"?><gexf xmlns:ns0="http://www.gexf.net/1.1draft/viz"
version="1.1" xmlns="http://www.gexf.net/1.1draft" xmlns:viz="http://www.gexf.net/1.1draft/viz"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.w3.org/2001/XMLSchema-instance">
<graph defaultedgetype="directed" mode="static">
<attributes class="node" mode="static">
<attribute id="0" title="origin" type="double" />
<attribute id="1" title="size" type="integer" />
</attributes>
<nodes>
<node id="0" label="Vijana Amani Pamoja (VAP)">
<ns0:color b="70" g="11" r="160" />
<ns0:size value="10" />
<attvalues>
<attvalue for="0" value="1.25" />
<attvalue for="1" value="10" />
</attvalues>
</node>
我可能在某个地方覆盖了 networkx 的 write_gexf 函数的默认命名空间的 VIZ 部分,但我也不知道我在哪里做的 - 所以我在这里问。
networkx.write_gexf(G,f) # G is the graph and f is the file to write.
(已编辑): 节点说 ns0:... 而不是 viz:... 如 GEXF 文档中所示。这会导致与使用 viz 参数的其他 GEXF 库的兼容性问题(并且找不到它们)。
【问题讨论】:
-
xmlns:ns0="http://www.gexf.net/1.1draft/viz"-xmlns:ns0和xmlns:viz都在那里并指向gexf/.../viz。我错过了什么吗? -
我编辑了这个例子——正如你在节点部分看到的那样,它使用 ns0 作为默认命名空间,而不是 viz。
-
@MarcMaxson:你知道如何改变命名空间了吗?我遇到了同样的问题...
-
我认为这是 networkx 中的一个错误
-
networkx 2.1 似乎发生了很大变化,包括这个错误。标题现在有
xmlns:viz而不是xmlns:ns0但控制边缘厚度和颜色仍然没有很好的记录。我确实发现如果你给一个节点一个 viz:color 它将继承到节点的边缘。