【问题标题】:Weight for edges according to number of occurence in NetworkX根据 NetworkX 中出现次数的边权重
【发布时间】:2016-05-21 15:40:01
【问题描述】:

假设我在网络中有节点['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 次,我想根据边缘的重量更改边缘的宽度。

有人能解释一下吗?

【问题讨论】:

    标签: python networking matplotlib networkx weighted


    【解决方案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)
    

    【讨论】:

    • 谢谢!这正是我想要的。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-04-03
    • 2017-09-24
    • 2014-05-22
    • 2015-04-06
    • 2018-08-14
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多