使用Networks python

时间:2017-11-27 08:13:33

标签: python coordinates networkx

我正在尝试使用属性“name”,“latitude”和“longitude”绘制节点。我尝试使用下面的代码绘制它,但它每次都返回不同的图形。如何修复节点的位置?

G = nx.Graph()

G.add_nodes_from(pos.keys())
for n, p in pos.items():
   G.node[n]['pos'] = p

pos=nx.spring_layout(G)
pos=nx.get_node_attributes(G,'pos')
pos=nx.spring_layout(G)

nx.draw(G, pos, with_labels=True, font_size=8, node_size=5)
plt.show()

以下是第3行中pos的示例。

{'Baker Street': [51.522236, -0.15708], 'Bermondsey': [51.498129999999996, -0.0635], 'Blackhorse Road': [51.58698, -0.04104]}

1 个答案:

答案 0 :(得分:2)

您正在使用spring布局,这与您的目标位置不同。这就是为什么你得到一个不同的布局。为了将节点的位置固定到属性position,只需执行:

将networkx导入为nx

G = nx.Graph()

G.add_nodes_from(pos.keys())
for n, p in pos.items():
   G.node[n]['pos'] = p


nx.draw(G, pos=pos, with_labels=True, font_size=8, node_size=5)
plt.show()