【发布时间】:2015-01-19 09:01:59
【问题描述】:
我在 Python 中工作,使用 NetworkX 和 Matplotlib。
当我一遍又一遍地绘制相同的图表但使用不同的颜色时,我怎样才能让节点每次都占据相同的位置?现在我得到:
但是我将节点添加为字典的键,每个节点的颜色作为值,然后对字典进行排序并将节点作为排序字典的键传递,并将颜色作为排序字典的值。相同的节点总是以相同的顺序添加。我认为这会工作......
所以,x 保存节点(分支)列表:
for ct2,i in enumerate(x):
for ct,j in enumerate(i):
vertex = j[t]
if np.angle(j[t]) <0 or np.angle(j[t]) >= np.angle(cutoff):
C[vertex] = 0.0
else:
C[vertex] = .8- 3*(np.angle(j[t])/np.angle(cutoff))
COLORS = collections.OrderedDict(sorted(C.items()))
然后是绘图调用:
pos=nx.graphviz_layout(G,'dot')
nx.draw_networkx_nodes(
G,pos,nodelist=COLORS.keys(),cmap=plt.get_cmap(cmap),
node_size=nodesize,alpha=.6,vmax=1,vmin=0, node_color = COLORS.values()
)
我做错了什么?
【问题讨论】:
-
嗨 Wapiti - 只是想检查一下我的回答是否解决了您的问题。谢谢
标签: python graph matplotlib graphviz networkx