通过边权在networkx graphviz_layout(Passing edge weights

2019-09-17 09:44发布

大家怎么也找不到传递的权重networkx到graphviz_layout的列表属性名称。 事情是这样的:

nx.spring_layout(G, weight='weight.sum')

nx.graphviz_layout(G, ...) 也许有人会知道吗?

Answer 1:

如果我有你的权利,你要指定边缘属性作为边的权重来使用的graphviz的布局。 从NetworkX文档我不明白,这是可能的。

然而, weight的属性是由在graphviz的布局算法中使用。 这是这样说的:

重量

边缘的重量。 在点,重量较重,较短的,直更垂直边缘。 对于其它布局,较大的权重鼓励布局以使边缘长度更接近由指定LEN属性。

有了这个,你可以设置边的权重为网络中的每个边缘:

g = nx.Graph()
g.add_edge(1, 2, {'weight': 4})

要么

g.add_edge(1, 2)
g.edge[1][2]['weight'] = 4

要么

g[1][2]['weight'] = 4

如果你想设置的边缘默认权,你可以通过这个作为参数传递给graphviz的程序要在使用graphviz_layout

nx.graphviz_layout(g, prog='dot', args='-Eweight=4')


文章来源: Passing edge weights to graphviz_layout in networkx