重复绘制同一个图形如何在同一位置获取节点?

2024-04-20 00:55:14 发布

您现在位置:Python中文网/ 问答频道 /正文

我使用的是Python,使用NetworkX和Matplotlib。在

当我一遍又一遍地用不同的颜色绘制同一个图时,如何使节点每次都占据相同的位置?现在我得到了:

enter image description here 但我将节点作为字典的键添加,每个节点的颜色作为值,然后对字典进行排序,并将节点作为已排序字典的键传递,将颜色作为排序后的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')

^{pr2}$

我做错什么了?在


Tags: innetworkxfor字典节点排序matplotlib颜色
1条回答
网友
1楼 · 发布于 2024-04-20 00:55:14

最好能看到图形调用相对于循环的位置(在内部?在外面?)在

但看起来循环中有pos=nx.graphviz_layout(G,'dot')。所以每次在循环中它都会重新计算pos。这是告诉算法将节点放在哪里的变量。位置有些随机,因此每次调用都会将它们放在不同的位置(这在spring_布局中更为明显)。在

如果这就是你所做的,快走

pos=nx.graphviz_layout(G,'dot')

在循环之前。这样就不会每次都重新生成。在

相关问题 更多 >