根据权重改变边缘粗细

4
当使用networkx的draw_networkx_edges()函数时,是否可以根据边的权重更改它们的线条厚度?这里假设权重小于某个已知数k。
2个回答

5
您可以使用edges(data = 'weight')函数:

以元组形式返回边,顺序为(节点,相邻节点,数据)。

也就是说,当指定 data='weight' 时,通过 edge[2] 可以获取边的权值信息(或者调用 data=True 返回所有数据元素的字典,通过 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])

graph drawing


1

示例链接已损坏。 - Max Ghenis

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接