Ser*_*jev 4 networking layout graph graphviz networkx
大家都找不到如何在networkx中将权重列表的属性名称传递给graphviz_layout.像这样的东西:
nx.spring_layout(G, weight='weight.sum')
Run Code Online (Sandbox Code Playgroud)
但随着nx.graphviz_layout(G, ...).也许有人会知道?
如果我找到了你,你想要指定哪个边缘属性用作graphviz布局的边缘权重.从NetworkX文档中我没有看到这是可能的.
但是,该weight属性由graphviz中的布局算法使用.这就是它所说的:
边缘的重量.在点中,重量越重,边缘越短,越直,越垂直.对于其他布局,较大的权重会鼓励布局使边长更接近len属性指定的边长.
通过此,您可以为网络中的每条边设置边缘权重:
g = nx.Graph()
g.add_edge(1, 2, {'weight': 4})
Run Code Online (Sandbox Code Playgroud)
要么
g.add_edge(1, 2)
g.edge[1][2]['weight'] = 4
Run Code Online (Sandbox Code Playgroud)
要么
g[1][2]['weight'] = 4
Run Code Online (Sandbox Code Playgroud)
如果要为边设置默认权重,可以将其作为参数传递给要在其中使用的graphviz程序graphviz_layout:
nx.graphviz_layout(g, prog='dot', args='-Eweight=4')
Run Code Online (Sandbox Code Playgroud)