具有特定位置的networkx add_node
我仍然是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字典设置它们的位置。
如何使用add_node()将节点添加到特定位置x和y的图形中
-
我不确定要完成什么,但是我想您想向图添加节点,在所需位置绘制它们,并且仍然能够在图对象中访问它们。
由于您没有将节点添加到图中,因此这是一个开始:
X.add_nodes_from(pos.keys())
然后,您在绘制图形时不必指定节点列表,因此在添加新节点时不必在两个不同的位置更改代码。
如果希望将节点的位置作为节点属性,则也可以这样做:
for n, p in pos.iteritems(): X.nodes[n]['pos'] = p
请注意,绘制图形时不会将这些位置用作位置,而必须对其进行显式设置。然后,您可以使用以下方法绘制并显示图形:
nx.draw(X, pos) plt.show()
假设您进行了导入
from matplotlib import pyplot as plt
。