经过一番研究,我发现答案在nx.set_node_attributes()。
当然,可以分配节点位置作为属性:
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, 'coord', pos)
这导致
In[1]: G.nodes(data=True)
Out[1]:
[('1', {'coord': (1, 1)}), #each node has its own position
('0', {'coord': (1, 0)}),
('3', {'coord': (3, 2)}),
('2', {'coord': (2, 3)}),
('5', {'coord': (0, 2)}),
('4', {'coord': (0.76, 1.8)})]
并且,也可以附加使用专用词典(多个属性在这种情况下(例如,可以存在节点而不具有属性):
test={'0':55,'1':43,'2':17,'3':86,'4':2} #node '5' is missing
nx.set_node_attributes(G, 'test', test)
这导致
In[2]: G.nodes(data=True)
Out[2]:
[('1', {'coord': (1, 1), 'test': 43}),
('0', {'coord': (1, 0), 'test': 55}),
('3', {'coord': (3, 2), 'test': 86}),
('2', {'coord': (2, 3), 'test': 17}),
('5', {'coord': (0, 2)}),
('4', {'coord': (0.76, 1.8), 'test': 2})]