创建确定的边和节点的图

问题描述 投票:0回答:1

我想创建一个显示连接的节点和边的图形。我已经确定了节点和边。

import matplotlib.pyplot as plt
import networkx as nx
%matplotlib notebook

G = nx.Graph()

G.add_node(y[i]==1, color="blue", size=500)
G.add_node(y[i]==0, color="green", size=300)
G.add_edge(d[k,i]*w[k,i], color="green")
G.add_edge(d[i,j]*f[i,j]>0, color="blue")

nx.draw(G, with_labels=True)
plt.show()

这里是确定的节点和边(W [k,i]是一个较长的列表),W&F是边,Y是节点。 d [i,j]是距离。距离是在给定位置的节点之间。

Y[0] 1
Y[1] 1
Y[3] 1
Y[12] 1
Y[57] 1
Y[59] 1
W[22,0] 1
W[23,0] 1
W[24,0] 1
F[0,0] 5
F[0,1] 5
F[1,3] 4
F[3,59] 3
F[3,98] 3.63798e-12
F[8,51] 5.65326e-12
F[24,8] 4.65317e-12
F[25,0] 7.10543e-15
F[25,24] 1.81366e-12
F[51,8] 1.56776e-15
F[51,59] 4.78817e-12
F[57,12] 1
F[59,57] 2

我收到此错误:

TypeError                                 Traceback (most recent call last)
<ipython-input-314-9036a4e704aa> in <module>
     23 G.add_node(y[i]==1, color="blue", size=500)
     24 G.add_node(y[i]==0, color="green", size=300)
---> 25 G.add_edge(d[k,i]*w[k,i], color="green")
     26 G.add_edge(d[i,j]*f[i,j]>0, color="blue")
     27 

TypeError: add_edge() missing 1 required positional argument: 'v_of_edge'

我需要添加什么来制作图形?

python graph nodes networkx edges
1个回答
0
投票

add_edge接受2个必需参数作为输入:u_of_edgev_of_edge。在您的代码中

G.add_edge(u_of_edge=d[k,i]*w[k,i], color="green")
             ^^^^^^
G.add_edge(u_of_edge=d[i,j]*f[i,j]>0, color="blue")
             ^^^^^^

您缺少v_of_edge节点,所以才得到TypeError

© www.soinside.com 2019 - 2024. All rights reserved.