2017-12-22 8 views
0

私はどのように各辞書をマルチカラーにしないのか方法がありません。私はこのやり方をしようとしますが、それはすべて一つの色になっています。私は何が欠けていますか?ネットワーク内のマルチカラーgrapf

import networkx as nx 
import matplotlib.pyplot as plt 

uber_dict={'y': {('VD3', 'VD5'): 0, ('VD3', 'VD8'): 0}, 'blue': {('R1', 'R3'): 1, ('R1', 'R2'): 1, ('R1', 'R4'): 1}, 'green': {('VD1', 'VD2'): 0, ('VD1', 'VD7'): 0, ('VD1', 'VD6'): 0}, 'red': {('DD2', 'DD3'): 4, ('DD2', 'VD4'): 1, ('DD2', 'DD1'): 5}} 

g = nx.Graph() 
for cvet, slovar in uber_dict.items(): 
    for e, p in slovar.items(): 
     g.add_edge(*e, weight=p) 

pos = nx.circular_layout(g) 
edge_labels = {(u, v): d['weight'] for u, v, d in g.edges(data=True)} 
nx.draw_networkx_nodes(g, pos, node_size=600, node_color=cvet) 
nx.draw_networkx_edges(g, pos) 
nx.draw_networkx_labels(g, pos) 
nx.draw_networkx_edge_labels(g, pos, edge_labels=edge_labels, font_color='r') 

plt.title("Входная схема") 
plt.axis('off') 
# plt.show() 
plt.savefig('output.png') 

答えて

0

この行のcvetの値:

nx.draw_networkx_nodes(g, pos, node_size=600, node_color=cvet) 

は、それがためにループを通る最後の時間だったものは何でもあります。つまり、どのような色であっても、すべてのノードを持つグラフを描画するように指示しています。もしノードのリストを作成し、nodelistとして描画コマンドにそれを渡すことはなく、また、ノードnodelist[i]colorlist[i]を有していなければならないような色のリスト(というよりも、単一の値cvet)という問題を解決する

関連する問題