根据 NetworkX 中出现的次数对边缘的权重



假设我在网络中['a','b','c']节点,并且对存储在一个列表中:

[('a','b'), ('a','b'), ('b','a'), ('b','c'), ('a','c')]

我想使用 NetworkX 和 matplotlib 创建一个加权网络图。由于该对 ('a','b') 出现 3 次(在无向网络中,('b','a') 也算在内),而 ('b','c') 和 ('a','c') 只出现 1 次,我想根据它们的重量改变边缘的宽度。

有人能对此有所了解吗?

这样的东西应该可以工作。了解边缘是否存在以及它是否更新了权重

default_weight = W
G = nx.Graph()
for nodes in node_list:
    n0 = nodes[0]
    n1 = nodes[1]
    if G.has_edge(n0,n1):   
       G[n0][n1]['weight'] += default_weight
    else:
       G.add_edge(n0,n1, weight=default_weight)

最新更新