web-dev-qa-db-ja.com

python DOTファイルからgraphvizでダイグラフをプロットする

これはgraphvizの-​​ APIリファレンス です。既存のdotソースファイルから有向グラフを生成するメソッドが見つかりませんでした。 renderviewなどのメソッドは、新しいファイルに保存します。

既存のdotコードからグラフを表示するにはどうすればよいですか?

11
Riken Shah

Sourceクラスを使用して解決できました。

from graphviz import Source
temp = """
digraph G{
Edge [dir=forward]
node [shape=plaintext]

0 [label="0 (None)"]
0 -> 5 [label="root"]
1 [label="1 (Hello)"]
2 [label="2 (how)"]
2 -> 1 [label="advmod"]
3 [label="3 (are)"]
4 [label="4 (you)"]
5 [label="5 (doing)"]
5 -> 3 [label="aux"]
5 -> 2 [label="advmod"]
5 -> 4 [label="nsubj"]
}
"""
s = Source(temp, filename="test.gv", format="png")
s.view()

Output

出力は同じフォルダーにあり、形式を変更できます。

[〜#〜] ps [〜#〜]-Ubuntuにgraphvizをインストールするには最初にSudo apt install graphvizを使用してインストールし、次にSudo pip install graphvizを使用してインストールします。そうしないと機能しません。

14
Riken Shah

[〜#〜] api [〜#〜] で定義されているSource.from_file('/path/to/dot_file')関数を使用できます。

したがって、コードは次のようになります。

from graphviz import Source
path = '/path/to/dot_file'
s = Source.from_file(path)
s.view()
9
Jack Stevens