json_graph.node_link_data在链接中提供了错误的ID

时间:2016-12-28 15:06:30

标签: python d3.js networkx

我想在d3.js中显示一个已在python / networkx(强制有向图)中构建的图形。我注意到序列化的json仅在节点创建时使用ID作为ID从0开始时才有效。 下面我给出了仍然显示这种现象的最小代码:

import networkx as nx
from networkx.readwrite import json_graph

G = nx.Graph()
G.add_node(1)
G.add_node(2)
G.add_edge(1,2)


print (list(G.nodes()))
print (list(G.edges())) 
data = json_graph.node_link_data(G)
print(data)

# output:
[1, 2]   # the nodes
[(1, 2)]  # the edge between the 2 nodes
{'links': [{'source': 0, 'target': 1}], 'nodes': [{'id': 1}, {'id': 2}], 'multigraph': False, 'directed': False, 'graph': {}}

链接的属性显示问题:'source':0和'target':1但是节点的ID是1和2.

序列化后,链接被描述为ID为0和1的节点之间的连接,尽管ID已被定义为1和2。 我已经尝试了很多东西,但基本上链接使用ID从0开始。因此,除非我的节点遵循相同的编号,否则序列化中的链接不正确。

我无法想象它应该像这样工作,还是我犯了错误?

0 个答案:

没有答案