我正在使用 networkx 绘制一个简单的无向图,但我无法根据特定属性为节点着色。我创建了一个字典,在这种情况下,键引用包含该属性的节点列表。它看起来像这样:
{
1 : [1, 2, 3, 4],
3 : [9, 11, 10, 8],
2 : [7, 5, 6]
}
我想渲染图表,以便每组节点的颜色不同。这些键用于访问特定颜色。我像这样绘制图表:
colors = [(random.random(), random.random(), random.random()) for i in xrange(0, 3)]
pos = nx.circular_layout(G)
for k,v in node_list_dict.iteritems():
nc = colors[int(k)-1]
nx.draw_networkx_nodes(G, pos, nodelist=v, node_color=nc)
nx.draw_networkx_edges(G, pos)
nx.draw_networkx_labels(G, pos)
这几乎可以工作,但会产生如下图像:
所以看起来前两组正确渲染,但最后一组没有。知道为什么吗?我查看了文档,但我不明白为什么它会失败。
此外,颜色列表通常会这样结束(当我的意思是通常我的意思是生成的颜色有些随机)
[(0.982864745272968, 0.038693538759121182, 0.03869353875912118), (0.12848750206109338, 0.9956534627440381, 0.12848750206109338), (0.050388282183359334, 0.050388282183359334, 0.9916284269963801)]