1

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

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

上記のステートメントでは、ノードリストを手動で設定する代わりに、ファイルからノードリストを読み取りたいと思います。そのファイルには、青色にする必要のあるノードのリストが含まれます。

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

誰かがファイルからノードリスト値を読み取る方法を提案できますか?

4

1 に答える 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()
于 2011-12-04T23:31:31.793 に答える