NetworkX рисует grid_2d_graph со значением нодлиста из файла - PullRequest
1 голос
/ 04 декабря 2011

Я пытаюсь нарисовать grid_2d_graph со значениями списка узлов из файла.

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

В приведенном выше заявлении вместо ручной настройки списка узлов я хочу прочитать список узлов из файла. Этот файл будет содержать список узлов, которые должны быть окрашены в синий цвет.

Я попытался прочитать из файла и поместить полученное значение в список узлов, но его ошибка выдачи Node '(0,1)' не имеет позиции, потому что, возможно, я сохраняю его как строку.

Может кто-нибудь предложить, как читать значения нодлиста из файла.

1 Ответ

0 голосов
/ 05 декабря 2011

Вот подход для хранения цветов узла в качестве атрибутов узла и сохранения их в файле формата 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()
...