在弹簧布局+ networkx中更改节点的颜色

时间:2011-05-01 19:30:47

标签: python networkx

如何更改位置未知的颜色节点

所以我在stackoverflow上看到了这个link,其中给出了明确设置节点位置的答案。

但是说我有这样的图表

   G = nx.Graph()
   for i in range(10):
      G.add_node(i)
   for i in range(9):
      G.add_edge(i,i+1)
   pos = nx.spring_layout(G)
   node_num = random.randint(0,10)

现在,如果我有一些东西作为随机数并将其涂成蓝色并让其他人变成红色......我将如何使用nodes_list函数的'draw_networkx'属性来实现它 这有整数节点。如果您可以为任何类型的节点名称提供解决方案,那将更有帮助....

非常感谢..

1 个答案:

答案 0 :(得分:1)

以下是一些可能有用的代码。这会选择一个随机节点变成蓝色并将其余部分着色为红色。

import random
import matplotlib.pyplot as plt
import networkx as nx
G=nx.Graph()
G.add_edges_from([('a','b'),('b','d'),('c','e'),('b','e')])
pos=nx.spring_layout(G)
nodes=G.nodes()
random.shuffle(nodes)
blue=nodes.pop()
nx.draw_networkx_nodes(G,pos,nodelist=[blue],node_color='b')
nx.draw_networkx_nodes(G,pos,nodelist=nodes,node_color='r')
nx.draw_networkx_edges(G,pos)
plt.show()