根据 NetworkX 中出现次数的边权重
Weight for edges according to number of occurence in 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)
假设我在网络中有节点 ['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)