无法使用 networkx 为图形设置权重
Can't set weight for graph with networkx
无法为图中的边设置权重。
我的数据集
dict_value={'Источник':[10301.0,10301.0,10301.0,10301.0,10329.0,10332.0,10333.0,10334.0,174143.0,1030408.0,10306066.0], 'Собеседник':[300.0,315.0,343.0,344.0,300.0,300.0,300.0,300.0,300.0,300.0,300.0],
'Частота':[164975000,164975000,164437500,164975000,164975000,164975000,164975000,164975000,164975000,164975000,164975000],
'БС LAC':[9,9,1,9,9,9,9,9,9,9,9],
'Длительность':[20,3,2,2,3,3,2,3,3,3,3]}
session_graph=pd.DataFrame(dict_value)
我的代码:
G = nx.MultiDiGraph()
for row in session_graph.itertuples():
if row[4]==1:
G.add_edge(row[1], row[2],label=row[3],color="green",weight=0.9)
if row[4]==9:
G.add_edge(row[1], row[2],label=row[3],color="red",weight=0.4)
p=nx.drawing.nx_pydot.to_pydot(G)
p.write_png('multi.png')
Image(filename='multi.png')
体重不变!我做错了什么?你能帮帮我吗?
如果您想更改边缘厚度,请将 penwidth
添加到您的参数中
G = nx.MultiDiGraph()
for row in session_graph.itertuples():
if row[4]==1:
G.add_edge(row[1], row[2],label=row[3],color="green",weight=0.9, penwidth = 5)
if row[4]==9:
G.add_edge(row[1], row[2],label=row[3],color="red",weight=0.4, penwidth = 1)
如果您以 dot
格式绘制图表,您会发现问题出在 GraphViz - 它忽略权重参数但使用 penwidth
参数,因此您需要将其传递给绘图库。
有关详细信息,请参阅 Graphviz, changing the size of edge 问题。
无法为图中的边设置权重。 我的数据集
dict_value={'Источник':[10301.0,10301.0,10301.0,10301.0,10329.0,10332.0,10333.0,10334.0,174143.0,1030408.0,10306066.0], 'Собеседник':[300.0,315.0,343.0,344.0,300.0,300.0,300.0,300.0,300.0,300.0,300.0],
'Частота':[164975000,164975000,164437500,164975000,164975000,164975000,164975000,164975000,164975000,164975000,164975000],
'БС LAC':[9,9,1,9,9,9,9,9,9,9,9],
'Длительность':[20,3,2,2,3,3,2,3,3,3,3]}
session_graph=pd.DataFrame(dict_value)
我的代码:
G = nx.MultiDiGraph()
for row in session_graph.itertuples():
if row[4]==1:
G.add_edge(row[1], row[2],label=row[3],color="green",weight=0.9)
if row[4]==9:
G.add_edge(row[1], row[2],label=row[3],color="red",weight=0.4)
p=nx.drawing.nx_pydot.to_pydot(G)
p.write_png('multi.png')
Image(filename='multi.png')
体重不变!我做错了什么?你能帮帮我吗?
如果您想更改边缘厚度,请将 penwidth
添加到您的参数中
G = nx.MultiDiGraph()
for row in session_graph.itertuples():
if row[4]==1:
G.add_edge(row[1], row[2],label=row[3],color="green",weight=0.9, penwidth = 5)
if row[4]==9:
G.add_edge(row[1], row[2],label=row[3],color="red",weight=0.4, penwidth = 1)
如果您以 dot
格式绘制图表,您会发现问题出在 GraphViz - 它忽略权重参数但使用 penwidth
参数,因此您需要将其传递给绘图库。
有关详细信息,请参阅 Graphviz, changing the size of edge 问题。