我想画一些节点会改变颜色的图的演变。
%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, 3, 4, 5, 6, 7, 10, 11, 12, 13, 14],
5: [2, 3, 4, 5, 6, 7, 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,pos=pos, with_labels=True, node_size = 1000, node_color=values, 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红色。
很抱歉,可能出现冗长而混乱的描述...