我使用的是Python,使用NetworkX和Matplotlib。在
当我一遍又一遍地用不同的颜色绘制同一个图时,如何使节点每次都占据相同的位置?现在我得到了:
但我将节点作为字典的键添加,每个节点的颜色作为值,然后对字典进行排序,并将节点作为已排序字典的键传递,将颜色作为排序后的dict的值。相同的节点总是以相同的顺序添加。我以为那会管用。。。在
因此,其中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')
我做错什么了?在
最好能看到图形调用相对于循环的位置(在内部?在外面?)在
但看起来循环中有
pos=nx.graphviz_layout(G,'dot')
。所以每次在循环中它都会重新计算pos
。这是告诉算法将节点放在哪里的变量。位置有些随机,因此每次调用都会将它们放在不同的位置(这在spring_布局中更为明显)。在如果这就是你所做的,快走
在循环之前。这样就不会每次都重新生成。在
相关问题 更多 >
编程相关推荐