Python 创建已确定边和节点的图形

Python 创建已确定边和节点的图形,python,graph,nodes,networkx,edges,Python,Graph,Nodes,Networkx,Edges,我想创建一个显示连接节点和边的图形。我已经确定了节点和边 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")

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

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'
TypeError回溯(最近一次调用)
在里面
23 G.add_节点(y[i]==1,color=“blue”,size=500)
24 G.add_节点(y[i]==0,color=“green”,size=300)
--->25 G.添加边缘(d[k,i]*w[k,i],color=“绿色”)
26 G.添加边缘(d[i,j]*f[i,j]>0,color=“蓝色”)
27
TypeError:add_edge()缺少1个必需的位置参数:“v_of_edge”
制作图形需要添加什么?

将两个强制参数作为输入:
u\u of_edge
v\u 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")
             ^^^^^^

您缺少了_edge节点的
v_,这就是为什么您得到了
TypeError

您的问题不清楚。字典
y
在哪里?因此y是一个二进制变量(以及w和f):
N=range(0,节点)
y={}#Yi,表示设施是否位于站点i,因为N:y[i]=multimel.addVar(lb=0,vtype=GRB.BINARY,obj=instcost,name='Y['+str(i)+']')
我认为我没有关于
y
的字典,所以简而言之:我想为上面给出的列表绘制一个图表。所有y值表示一个节点,所有F值表示y节点之间的边,所有W值都是连接节点k和y节点的边。你知道我如何实现这个节点吗?(谢谢你的回答)尚不清楚
d
w
f
是什么。请举例说明它们的内容,这样可以更容易地解决问题。但是,如果知道边和节点,只需将两个端点作为参数传递即可。