Graphviz fa un buon lavoro disegnando bordi paralleli. È possibile utilizzarlo con NetworkX scrivendo un file di punti e quindi elaborando con Graphviz (ad esempio, il layout neato di seguito). Avrete bisogno di pydot o pygraphviz oltre a 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
Su NetworkX 1.11 e successivi, nx.write_dot
non funziona come per issue on networkx github. La soluzione consiste nel chiamare write_dot
utilizzando
from networkx.drawing.nx_pydot import write_dot
o
from networkx.drawing.nx_agraph import write_dot
correlati http://stackoverflow.com/questions/10379448/plotting-directed-graphs-in-python-in- a-way-that-show-all-edges-separatamente e http://stackoverflow.com/questions/15053686/networkx-overlapping-edges-when-visualizing-multigraph –
Peccato che non sia implementato in networkx! – famargar