根据NetworkX中出现次数的边数重量

时间:2016-05-21 15:40:01

标签: python networking matplotlib networkx weighted

假设我在网络中有节点['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 个答案:

答案 0 :(得分:2)

这样的事情应该有效。找出是否存在边缘以及是否更新权重

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)