Bob*_*Bob 4 python matplotlib networkx
使用draw_networkx_edges()networkx时,是否可以根据边的权重来改变边的厚度?
这里我假设权重小于某个已知数字,例如 k。
您可以使用edges(data='weight'):
边以元组的形式返回,其中可选数据的顺序为(节点、邻居、数据)。
也就是说,您可以通过edge[2]指定data='weight'(或者edge[2]['weight']调用data=True以字典形式获取所有数据元素)来获取边缘的数据。
这是一个例子:
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])
Run Code Online (Sandbox Code Playgroud)