web-dev-qa-db-ja.com

pythonでドットをpngに変換する

コードから生成されたドットファイルがあり、出力にレンダリングしたい。このために、コマンドはcmdでこのようなものであることをネットで見ました

dot -Tpng InputFile.dot -o OutputFile.png  for Graphviz

しかし、私の問題は、pythonプログラムでこの組み込み機能を使用したいということです。

どうすればできますか?

私はpydotを見ましたが、そこに答えを見つけることができないようです.....

28
user506710

pydot はとにかくGraphVizバイナリをインストールする必要があるため、既にドットファイルを生成している場合は、ドットを直接自分で呼び出すこともできます。例えば:

from subprocess import check_call
check_call(['dot','-Tpng','InputFile.dot','-o','OutputFile.png'])
21
Mark Longair

pydot.graph_from_dot_fileでファイルをロードして、pydot.Dotクラスインスタンスを取得します。次に、write_pngメソッドを使用してPNGファイルに書き込みます。

import pydot

(graph,) = pydot.graph_from_dot_file('somefile.dot')
graph.write_png('somefile.png')
43
Judge Maygarden

あなたが試すことができます:

import os
os.environ["PATH"] += os.pathsep + 'C:/Program Files (x86)/Graphviz2.38/bin/'
os.system('dot -Tpng random.dot -o random.png')
2

pygraphviz を使用できます。グラフをロードしたら、次のことができます

graph.draw('file.png')
2
nmichaels