我确信这是非常基本的,但在构造图形时是否可以在节点之间指定任意数量的边?我一直在搜索术语:'有向图','多向有向图','平行边','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')
(显然这不正确。)
答案 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)]