【发布时间】:2018-05-10 10:08:56
【问题描述】:
我正在尝试使用属性“名称”、“纬度”和“经度”来绘制节点。我试图用下面的代码来绘制它,但它每次都返回不同的图形。如何固定节点的位置?
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]}
【问题讨论】:
-
Spring 布局将节点置于随机位置。所以每次调用 spring layout 都会产生不同的东西。把你用
pos=nx.spring_layout(G)的两次去掉,直接用pos=nx.get_node_attributes(G, 'pos')就行了。
标签: python coordinates networkx