Graphviz thực hiện tốt công việc vẽ các cạnh song song. Bạn có thể sử dụng nó với NetworkX bằng cách viết một tệp dấu chấm và sau đó xử lý bằng Graphviz (ví dụ: bố cục gọn gàng bên dưới). Bạn sẽ cần pydot hoặc pygraphviz ngoài 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
On NetworkX 1.11 và mới hơn, nx.write_dot
không hoạt động theo issue on networkx github. Cách giải quyết là để gọi write_dot
sử dụng
from networkx.drawing.nx_pydot import write_dot
hoặc
from networkx.drawing.nx_agraph import write_dot
liên quan http://stackoverflow.com/questions/10379448/plotting-directed-graphs-in-python-in- a-way-that-show-all-edge-riêng biệt và http://stackoverflow.com/questions/15053686/networkx-overlapping-edges-when-visualizing-multigraph –
Quá xấu nó không được thực hiện trong networkx! – famargar