3

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) 

これはほとんど機能しますが、次のような画像になります。

ほぼ正しいグラフ

したがって、最初の 2 つのセットは正しくレンダリングされているように見えますが、最後のセットはそうではありません。理由について何か考えはありますか?ドキュメントを見ましたが、なぜ失敗したのかわかりません。

また、色のリストは通常​​そのようになります (通常、生成される色は多少ランダムであることを意味します)。

[(0.982864745272968, 0.038693538759121182, 0.03869353875912118), (0.12848750206109338,    0.9956534627440381, 0.12848750206109338), (0.050388282183359334, 0.050388282183359334, 0.9916284269963801)]
4

1 に答える 1