具有特定位置的networkx add_node

发布于 2021-01-29 17:09:37

我仍然是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的图形中

关注者
0
被浏览
48
1 个回答
  • 面试哥
    面试哥 2021-01-29
    为面试而生,有面试问题,就找面试哥。

    我不确定要完成什么,但是我想您想向图添加节点,在所需位置绘制它们,并且仍然能够在图对象中访问它们。

    由于您没有将节点添加到图中,因此这是一个开始:

    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



知识点
面圈网VIP题库

面圈网VIP题库全新上线,海量真题题库资源。 90大类考试,超10万份考试真题开放下载啦

去下载看看