同时添加多个平行边 - Networkx

时间:2016-07-02 22:30:44

标签: python networkx

我确信这是非常基本的,但在构造图形时是否可以在节点之间指定任意数量的边?我一直在搜索术语:'有向图','多向有向图','平行边','add_edges'等。

说,我有四个节点:A,B,C,D,我想显示: A到B,有600个边缘 A到C有100条边 A到D,有400条边

我在想:

import networkx as nx
G = nx.MultiDiGraph()
G.add_node('a', {'b': 600, 'c':100, 'd':400})
G.add_node('b')
G.add_node('c')
G.add_node('d')

(显然这不正确。)

1 个答案:

答案 0 :(得分:2)

根据文件:https://networkx.github.io/documentation/development/tutorial/tutorial.html 你必须从元组列表中添加边:

import networkx as nx

a = {'b': 600, 'c':100, 'd':400}
MG=nx.MultiGraph()
MG.add_weighted_edges_from([('a', k, v) for k, v in a.iteritems()], weight='weight')
print MG.edges(data='weight')

输出:

[('a', 'c', 100), ('a', 'b', 600), ('a', 'd', 400)]