4

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

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

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

4

1 回答 1

5

如果我说得对,您想指定哪个边缘属性用作 graphviz 布局的边缘权重。从NetworkX 文档中,我认为这是不可能的。

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

重量

边缘的重量。在dot中,重量越重,边缘越短、越直、越垂直。对于其他布局,较大的权重会鼓励布局使边缘长度更接近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')
于 2012-05-23T05:54:41.010 回答