2011-12-04 13 views
1

ファイルからノードリスト値を使ってgrid_2d_graphを描画しようとしています。NetworkXはファイルからノード値を持つgrid_2d_graphを描画します

list1 = [(0,0),(0,1),(1,0)] 
nx.draw_networkx_nodes(G, pos, nodelist=list1, node_color='b') 

上記の説明では、手動でノードリストを設定する代わりに、ファイルからノードリストを読み込みたいと考えています。このファイルには、青色にする必要があるノードのリストが含まれます。

ファイルから読み込み、取得した値をノードリストに入れようとしましたが、与えられたエラーNode '(0,1)'には位置がありません。文字列として格納している可能性があります。

誰でも、ファイルからノードリストの値を読み取る方法をお勧めしますか?

答えて

0

ノードの色としてノードの色を保存し、GraphML形式のファイルに保存する方法です。次に、そのファイルを読み込み、ノードと属性をリストに展開してnx.draw()(またはnx.draw_networkx_nodes())に渡します。

import matplotlib.pyplot as plt 
import networkx as nx 
# create graph 
G=nx.Graph() 
# with nodes that have attribute "color" 
G.add_nodes_from('abc',color='r') 
G.add_nodes_from('de',color='b') 
G.add_edges_from([('a','b'),('b','d'),('c','e'),('b','e')]) 
# save/load in graphml format 
nx.write_graphml(G,'color_test.graphml') 
H=nx.read_graphml('color_test.graphml') 
# get nodes and colors as lists from graph attributes 
nodes,colors=zip(*nx.get_node_attributes(H,'color').items()) 
nx.draw(H,nodelist=nodes,node_color=colors) 
plt.show() 
関連する問題