У меня есть словарь со следующими данными:
pos = {0: (1,1), 1: (2,2), 2: (3,2), 3: (4,3)}
Затем я попробовал следующий код:
import networkx as nx
G = nx.Graph()
G.add_nodes_from(pos)
#also G.add_nodes_from(pos.keys())
print(G.nodes(True))
, который дает:
>>>> [(0, {}), (1, {}), (2, {}), (3, {})]
как видите, позиции пусты.
Но если я напишу
G = nx.random_geometric_graph(5, 0.50)
print(G.nodes(True))
, он возвращает
[(0, {'pos': [0.895101164279736, 0.43929155577155976]}), (1, {'pos': [0.006064168598946429, 0.6044775286563574]}), (2, {'pos': [0.021659978032451344, 0.47877598747213523]}), (3, {'pos': [0.05130150282000934, 0.1137451989310001]}), (4, {'pos': [0.8734509206210705, 0.9839817045923323]})]
, это график с местоположениями. Также я попытался изменить «pos» на «pos2»:
pos2 = {0:{'pos': [1,1]}, 1: {'pos':[2,2]}, 2: {'pos':[3,2]}, 3: {'pos':[4,3]}}
, и я также попробовал коды из других связанных вопросов:
1) answer1
for n, p in pos.iteritems():
X.node[n]['pos'] = p
2) answer2
pos={'0':(1,0),'1':(1,1),'2':(2,3),'3':(3,2),'4':(0.76,1.80),'5':(0,2)}
nx.set_node_attributes (G,'ordin ', Pos)
Я должен добавить более 1500 узлов к графику с метками несколько раз, поэтому я не хочу использовать «для» l oop, я ищу эффективное выделение, а не как:
G2.add_node(1,pos=(1,0))
Может кто-нибудь найти способ?