Python 根据权重更改边厚度

Python 根据权重更改边厚度,python,matplotlib,networkx,Python,Matplotlib,Networkx,使用networkx的draw\u networkx\u edges()时,是否可以根据边的重量更改边的厚度 在这里,我假设权重小于某个已知的数字,比如k.一种方法是对边进行分类,如中所示 步骤1:向边添加权重 步骤2:根据权重对边缘专家进行分类 步骤3:传递edgelist以绘制\u网络x\u边 我是在一次意外中发现这一点的 旧的断开链接:您可以使用: 边作为元组返回,其中包含顺序(节点、邻居、数据)中的可选数据 也就是说,当指定data='weight'时,您可以通过edge[2]获取边的数

使用networkx的
draw\u networkx\u edges()
时,是否可以根据边的重量更改边的厚度


在这里,我假设权重小于某个已知的数字,比如k.

一种方法是对边进行分类,如中所示

步骤1:向边添加权重
步骤2:根据权重对边缘专家进行分类
步骤3:传递edgelist以绘制\u网络x\u边

我是在一次意外中发现这一点的

旧的断开链接:

您可以使用:

边作为元组返回,其中包含顺序(节点、邻居、数据)中的可选数据

也就是说,当指定
data='weight'
时,您可以通过
edge[2]
获取边的数据(或者如果调用
data=True
将所有数据元素作为dict获取,则可以通过
edge[2]['weight']
获取边的数据)

下面是一个例子:

import networkx as nx
g = nx.Graph()
g.add_edge('A', 'B', weight=5)
g.add_edge('A', 'C', weight=15)
g.add_edge('B', 'C', weight=7)

pos = nx.spring_layout(g, seed=0)
nx.draw_networkx(g, pos)

for edge in g.edges(data='weight'):
    nx.draw_networkx_edges(g, pos, edgelist=[edge], width=edge[2])

示例链接已断开