每个人都找不到如何将权重列表的属性名称传递给 networkx 中的 graphviz_layout。像这样的东西:
nx.spring_layout(G, weight='weight.sum')
但与nx.graphviz_layout(G, ...)
. 也许有人会知道?
每个人都找不到如何将权重列表的属性名称传递给 networkx 中的 graphviz_layout。像这样的东西:
nx.spring_layout(G, weight='weight.sum')
但与nx.graphviz_layout(G, ...)
. 也许有人会知道?
如果我说得对,您想指定哪个边缘属性用作 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')