2012-05-21 64 views
4

大家graphviz_layout無法找到如何通過的權重networkx到graphviz_layout的列表屬性名稱。類似這樣的:傳遞邊權在networkx

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

但是與nx.graphviz_layout(G, ...)。也許有人會知道嗎?

回答

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 

如果你想設置一個defau您可以通過您想要使用的argument to the graphviz programgraphviz_layout

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