Как отобразить циклы в графическом чертеже networkx
У меня есть простой граф, построенный с помощью NetworkX следующим образом:
import networkx as nx
import matplotlib.pyplot as plt
G = nx.DiGraph()
G.add_edges_from([(0,1), (0,2), (1,1), (1,2)])
nx.draw_networkx(G)
plt.show()
Когда я рисую этот график, я получаю следующее изображение:
Граф также имеет ребро (1,1), но оно не показывает это ребро на изображении. Как я могу нарисовать этот край тоже? Я думаю, что это результат отсутствия стрелок. Эта визуализация действительно очень плоха. Как я могу использовать стрелки вместо этих жирных линий?
1 ответ:
Graphviz отлично справляется с рисованием стрелок и петель. (Нетривиальный для реализации в библиотек matplotlib). Вот пример:
import networkx as nx import matplotlib.pyplot as plt G = nx.DiGraph() G.add_edges_from(\[(0,1), (0,2), (1,1), (1,2)\]) nx.write_dot(G,'graph.dot') # then run dot -Tpng graph.dot > graph.png