python networkx 模块有一个方法 nx.union 用于合并两个网络映射:
C = nx.union(G,H)
其中 G 和 H 是网络图,C 是组合版本。它按编号查找所有节点并合并具有相同编号的节点。
以 GEXF 格式存储的节点示例:
<node id="0" label="walking">
<ns0:color b="200" g="11" r="11" />
<attvalues>
<attvalue for="0" value="2" />
<attvalue for="1" value="26" />
</attvalues>
</node>
这对我来说是个问题,因为我的地图具有任意节点编号,但每个节点属性中的标签都是唯一的。当我分配节点号时,我只是通过一个列表并使用列表索引作为节点号,但是 map1 可能在位置 84 有“行走”,而 map2 可能在位置 157 有“行走” - 所以节点号并不容易与节点标签相关。
有谁知道我应该如何与 networkx 联合到网络地图并通过节点标签名称指定匹配?
我可能必须编写自己的方法,但只是想确保我没有遗漏任何东西。有一个 union_disjoint() 但这似乎在同一个文件中创建了两个单独的未连接的地图,这没有帮助。
还有第二个 networkx 问题:有没有办法以 GEXF 文件格式指定节点标签大小和标签颜色?未在 GEXF v1.2 草案规范中列出。