我正在尝试使用属性“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]}
答案 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()