动态绘制带有节点更改颜色的图形

问题描述

我想画一些节点会改变颜色的图的演变。

%matplotlib tk
import networkx as nx 
import matplotlib.pyplot as plt
import numpy as np
import time

G = nx.Graph() 
adj_list = {2: [2,3,4,5,6,7,10,11,12,13,14],3: [2,5: [2,8,9]} 
for i,j in adj_list.items():
    for k in j:
        G.add_edge(i,k)
pos = nx.spring_layout(G)

val_map = {8: 'r',9:'r'}
values = [val_map.get(node,'g') for node in G.nodes()]
nx.draw(G,pos=pos,with_labels=True,node_size = 1000,node_color=values,font_size=20) 
plt.draw()

这样,我所有节点都是绿色,但节点8和9都是红色。现在,我想将一些绿色节点的颜色更改为红色,然后在同一窗口上重新绘制图形。

def grafo(i):
    val_map [i]='r'
    values = [val_map.get(node,'g') for node in G.nodes()]
    nx.draw(G,font_size=20)
    plt.draw()

for i in range(5):
    grafo(i+2)
    time.sleep(1)

我期望看到节点2为红色的图形,然后是1秒钟,节点3为红色的图形,依此类推。相反,发生的事情是5秒钟没有任何反应,然后出现了节点2、3、4的图形,5和6红色。

很抱歉,可能出现冗长而混乱的描述...

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)