2016-04-19 20 views
1

pydotを使用して有向グラフを作成したいと思います。既定のエッジも設定しています。エッジセットのタイプはリストまたはタプルでも構いません。なぜなら、前もって[(1,2),(2,3),(3,2)]または((1,2),(2,3),(3,2))のように自分の要件に従ってエッジのセットを構築できるからです。唯一gためadd_edge機能を持って、私はない機能がadd_edge_fromが好きそこに持って見つけ、その後pydotを使用してエッジセットから有向グラフを表示

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

は、私は次のようにpydotオブジェクトを初期化し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という名前のモジュールはありません。私は明確にすることができますか?ちなみにPython 2.7でPycharmをIDEとして使用しています。 –

+0

それから、上記のコードを実行するSpyderがあります。 ImportErrorはもう存在しません。しかしコンソールはまだSyntaxError:In [5]の無効な構文:( –

+0

これはIPython出力です。コロン(:)の後の部分だけが必要です.4行目はgraphvizで通常の方法でレンダリングできるドットファイルを生成します。 – Aric

関連する問題