我还与networkx我要添加多种不同位置的节点的初学者,我用下面的代码
pos = {0: (40, 20), 1: (20, 30), 2: (40, 30), 3: (30, 10)}
X=nx.Graph()
nx.draw_networkx_nodes(X,pos,node_size=3000,nodelist=[0,1,2,3],node_color='r')
但是当我要访问图形X,如果我键入X.node它返回一个空列表,如果我想添加更多的节点我使用POS字典设置在开始自己的立场。
如何可以在一个特定的位置x和y使用add_node将节点添加到的图表()
我不是你想要完成的任务完全确定,但我把它解释为你想节点添加到图中,在所期望的位置吸引他们仍然能够访问他们的图形对象。
既然你不节点添加到图表,这将是一个开始:
X.add_nodes_from(pos.keys())
然后,你不必绘制图形时指定节点列表,从而你不必增加新的节点,可以改变两个不同地方的代码。
如果您希望节点作为节点属性的位置,你能做到这一点,以及:
for n, p in pos.iteritems():
X.node[n]['pos'] = p
只是注意,绘制图形时,这些位置将不会被用作位置,它必须显式设置。 然后,您可以绘制和显示与图形:
nx.draw(X, pos)
plt.show()
假设你做的进口from matplotlib import pyplot as plt
。
你可以用下面的办法来设置单独的节点位置,然后提取“POS”字典绘制时使用。
In [1]: import networkx as nx
In [2]: G=nx.Graph()
In [3]: G.add_node(1,pos=(1,1))
In [4]: G.add_node(2,pos=(2,2))
In [5]: G.add_edge(1,2)
In [6]: pos=nx.get_node_attributes(G,'pos')
In [7]: pos
Out[7]: {1: (1, 1), 2: (2, 2)}
In [8]: nx.draw(G,pos)
UPDATE
添加绘图