2013-02-24 27 views
10

時正確以下多重圖地塊使用的graphviz NEATONetworkx:重疊邊緣可視化多重圖

import networkx as nx 
nx.MultiGraph ([(1,2),(1,2),(1,2),(3,1),(3,2)]) 
nx.write_dot(Gm,'multi.dot') 
!neato -T png multi.dot > multi.png 

然而,使用Networkx的繪製函數以生成PNG(如圖this answer)(即平行的邊緣不重疊)不會做的伎倆

nx.draw_graphviz(Gm,prog='neato') 

是否有可能避免重疊使用從Networkx draw方法的邊緣?

感謝

回答

8

遺憾的是沒有。在技​​術上可行,但迄今爲止沒有人編寫代碼。

+0

相關,暗示到,這需要在NetworkX添加:https://groups.google.com/forum/#!msg/networkx-discuss/K6QYbpBDUfk/1GqbsiocpCAJ – 2013-07-23 23:42:51

0

嗯,我知道它可能不是你要找的東西,但我正面臨一個類似的問題,我想有一個有向圖,其中兩個節點之間的邊緣根據方向有不同的權重(不管它是進出節點)和我所做的工作是我爲每個邊緣使用了不同的顏色,並減少了其中一個邊的不透明度,因此即使它們重疊也會顯示。 我只需要兩個節點之間的兩條邊,所以它對我來說就是一招。

G = nx.DiGraph() 
G.add_nodes_from([0,1]) 
pos = nx.circular_layout(G) 
nx.draw_networkx_nodes(G, pos, node_color = 'r', node_size = 100, alpha = 1) 
nx.draw_networkx_edges(G, pos, edgelist = [(0,1)], width = 2, alpha = 0.5, edge_color='b') 
nx.draw_networkx_edges(G, pos, edgelist= [(1,0)], width = 1, alpha = 1) 
plt.axis('off') 
plt.show() 

enter image description here