Firma Graphviz wykonuje dobrą pracę rysując równoległe krawędzie. Możesz użyć tego z NetworkX, pisząc plik kropki, a następnie przetwarzając go za pomocą Graphviz (na przykład układ neato poniżej). Musisz pydot lub pygraphviz oprócz NetworkX
In [1]: import networkx as nx
In [2]: G=nx.MultiGraph()
In [3]: G.add_edge(1,2)
In [4]: G.add_edge(1,2)
In [5]: nx.write_dot(G,'multi.dot')
In [6]: !neato -T png multi.dot > multi.png
Na NetworkX 1.11 i nowsze, nx.write_dot
nie działa zgodnie issue on networkx github. Rozwiązaniem jest wywołanie write_dot
użyciu
from networkx.drawing.nx_pydot import write_dot
lub
from networkx.drawing.nx_agraph import write_dot
Related http://stackoverflow.com/questions/10379448/plotting-directed-graphs-in-python-in- a-way-that-show-all-edges-separate i http://stackoverflow.com/questions/15053686/networkx-overlapping-edges-when-visualizing-multigraph –
Szkoda, że nie jest zaimplementowany w networkx! – famargar