2013-02-24 14 views
10

visualizing multigraph भूखंडों सही ढंग से निम्नलिखित (यानी समानांतर किनारों को ओवरलैप नहीं है) Graphviz neato का उपयोग कर (के रूप में this answer में दिखाया गया है) एक png उत्पन्न करने के लिएNetworkx: ओवरलैपिंग किनारों जब MultiGraph

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 के ड्रा समारोह का उपयोग कर चाल नहीं है

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

क्या नेटवर्कक्स से ड्रॉ विधियों का उपयोग करके किनारों को ओवरलैप करना संभव है?

धन्यवाद

उत्तर

8

दुर्भाग्य से नहीं। यह तकनीकी रूप से संभव है लेकिन अब तक कोई भी कोड नहीं लिखा है।

+0

संबंधित है, जहां इस NetworkX में जोड़ना होगा करने के लिए इशारा: https://groups.google.com/forum/#!msg/networkx-discuss/K6QYbpBDUfk/1GqbsiocpCAJ –

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

संबंधित मुद्दे