将边权重传递给networkx中的graphviz_layout

时间:2012-05-21 21:45:38

标签: networking layout graph graphviz networkx

每个人都找不到如何在网络x中将权重列表的属性名称传递给graphviz_layout。像这样:

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

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

1 个答案:

答案 0 :(得分:5)

如果我找到了你,你想指定哪个边缘属性用作graphviz布局的边缘权重。从NetworkX docs我看不出这是可能的。

但是,weight属性由graphviz中的布局算法使用。这就是它所说的:

  

weight

     

边缘重量。在点中,重量越重,边缘越短,越直,越垂直。对于其他布局,较大的权重会鼓励布局使边长更接近len属性指定的边长。

使用此功能,您可以为网络中的每个边缘set the edge weight

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_layout中要使用的argument to the graphviz program传递:

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