2016-04-19 2 views
1

Я хочу создать ориентированный граф с использованием pydot, и у меня есть готовый набор ребер. Тип набора ребер может быть списком или кортежем, который не имеет значения, потому что я могу заранее создать набор ребер в соответствии с моим требованием, как и [(1,2),(2,3),(3,2)] или ((1,2),(2,3),(3,2)).Отображение ориентированного графика из набора ребер с использованием pydot

Я инициализировать pydot объект g следующим образом:

g = pydot.Dot() 
g.set_type('digraph') 

После этого, я считаю, там есть не функция любит add_edge_from, имеет только add_edge функцию g. Это значит, что я должен генерировать край один за другим ??

Возможно, я мог бы создать граф из набора ребер, используя следующие способы в начале.

g=pydot.graph_from_edges(edge_set) 

Но я считаю, это произведет неориентированный граф :(

Кстати, я пытаюсь реализовать график, используя networkx и успех. Тем не менее, его броский и обходный режим показа презентации, которые прикрепляются более значение для края, кроме узла (извините, это просто мое мнение, и, конечно, вы можете не согласиться с ним), не согласуется с тем, что я хочу в этом случае сейчас.

У кого-нибудь есть идеи или советы для меня? Есть ли готовый метод, который я могу использовать? Спасибо за любую помощь!

ответ

1
In [1]: import networkx as nx 

In [2]: G = nx.DiGraph([(1,2),(2,3),(3,2)]) 

In [3]: from networkx.drawing.nx_pydot import write_dot 

In [4]: write_dot(G,'file.dot') 

In [5]: !dot -Tpng file.dot >file.png 

enter image description here

+0

Спасибо заранее. К сожалению, я не могу узнать значение In [5] (не может быть выполнено), а In [4] дает мне ImportError: Нет модуля с именем pydotplus. Не могли бы вы мне помочь? Кстати, я использую Pycharm как IDE в python 2.7. –

+0

Затем у меня есть Spyder для запуска кода, который вы указали выше. Теперь ImportError больше не существует. Но консоль все еще говорит синтаксис SyntaxError: invalid in In [5] :( –

+0

Это IPython-выход. Вы хотите только часть после двоеточия (:). Линия 4 создает точечный файл, который вы можете визуализировать обычным способом с помощью Graphviz – Aric

Смежные вопросы