2017-10-17 10 views
-1

Iはグラフを描画するためのすべてのPythonライブラリで失われています。私はそれが私の仕事のために良くないことを見つけるためにnetworkxで遊んでかなりの時間を費やしているPythonでグラフを描く - pydotplusエラーを

柔軟性とドキュメントである1 ...知っていたい(を例えば大きなグラフのオーバーラップラベル) 。

今、私はPYDOTまたはpydotplusを使用しようとしていますが、ないドキュメント、そこに合理的な例がありません。または私は何かを逃していますか? Pydotplusウェブサイトには参考文献がありますが、それは初心者にとっては完全に役立つものではありません。

は今、私はpydotplusでグラフを描画することができていますが、私は、ノード持つノード位置(Fruchterman-Reingoldアルゴリズム)と、特に使用の色やサイズを変更したいが、私はどのようには考えています。

サンプルコード:

import pydotplus as ptp 

graph = ptp.Dot(graph_type='graph') 
edges = [(1,2), (1,3), (2,4), (2,5), (3,5)] 
nodes = [(1, "A", "r"), (2, "B", "g"), (3, "C", "g"), (4, "D", "r"), (5, "E", "g")] 
for e in edges: 
    graph.add_edge(ptp.Edge(e[0], e[1])) 
for n in nodes: 
    node = ptp.Node(name=n[0], attrs={'label': n[1], 'fillcolor': n[2]}) 
    graph.add_node(node) 
graph.write_png("file.png") 

これは、例外がスローされます、@pgvのおかげで解決し

InvocationException: Program terminated with status: 1. stderr follows: 
Error: /tmp/tmpznciMx: syntax error in line 7 near '{' 
+0

どちらが最適ですか?私が今まで見たことがあれば、意見に基づく質問。 – asongtoruin

+0

@ason​​gtoruin:私が関係するパラメータを指定しました。 – galapah

+0

あなたは[help/on-topic]と[ask]を読むべきです – pvg

答えて

0

問題。

  • 問題1:fillcolorのは、それ自体では動作しません、パラメーター・スタイルが
を「埋め」に設定する必要があります:ノードの引数は、キー=値のペアではなく、辞書
  • 問題2として渡す必要があります

    修正コード:

    import pydotplus as ptp 
    
    graph = ptp.Dot(graph_type='graph') 
    edges = [(1,2), (1,3), (2,4), (2,5), (3,5)] 
    nodes = [(1, "A", "r"), (2, "B", "g"), (3, "C", "g"), (4, "D", "r"), (5, "E", "g")] 
    for e in edges: 
        graph.add_edge(ptp.Edge(e[0], e[1])) 
    for n in nodes: 
        node = ptp.Node(name=n[0], label= n[1], fillcolor=n[2], style="filled") 
        graph.add_node(node) 
    graph.write_png("file.png")