как рисовать мультиграф в networkx с помощью matplotlib или graphviz
когда я передаю матрицу смежности multigraph numpy в networkx (используя функцию from_numpy_matrix) а затем попробуйте нарисовать график с помощью matplotlib, он игнорирует несколько ребер.
Как я могу заставить его рисовать несколько краев ?
1 ответов
Graphviz хорошо рисует параллельные ребра. Вы можете использовать это с NetworkX, написав точечный файл, а затем обрабатывая Graphviz (например, Neato layout ниже). Вам понадобится pydot или pygraphviz в дополнение к 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
на NetworkX 1.11 и новее, nx.write_dot
не работает в выпуск на networkx github. Обходным путем является вызов write_dot
используя
from networkx.drawing.nx_pydot import write_dot
или
from networkx.drawing.nx_agraph import write_dot