4
私はsvgとしてプロットしたい非常に簡単なグラフを持っています。たとえば:中間ファイルなしでpydotグラフの出力を得ることは可能ですか?
# graph.dot
graph {
a -- b;
b -- c;
}
私は現在のファイルを読み、次のようにSVGファイルを生成するPYDOTを使用しています:
import pydot
graphs = pydot.graph_from_dot_file('graph.dot')
graphs[0].write_svg('graph.svg') # there is only 1 graph so the 0 index.
はしかし、私は中間ファイルgraph.dot
を必要とせずに、これを行う必要があり、 graph.svg
。私はgraph.dot
というコードの内容を文字列に持っています。これに対応する文字列にはsvgの出力が必要です。私の質問だけPYDOTに限定されるものではない
graph_dot = "... ..." # string, I have this
graph_svg = convert_dot_to_svg(graph_dot)
# i need something like convert_dot_to_svg()
:
は、私のようなものが必要。もし誰かが私がこれを行うことができるウェブAPIを知っているなら、それもやります。
ありがとうございました。
私はPYDOTを使用したことがありません(ただし、私はGraphvizを知っていますが)、pydotの文書を見てみると、ファイルの代わりにファイルのようなオブジェクトを使うことができます。したがって、標準の[io](https://docs.python.org/3/library/io.html)モジュールからStringIOまたはBytesIOを試す必要があります。 –
@ PM2あなたは入力を取るのに 'io'を使うことができます。しかし、 'write_svg'関数をどのように置き換えるのですか? –
@ PM2Ring前述のように、質問はピット自体に限定されません。 Graphvizでドット文字列に対応するsvg文字列を取得する方法を教えてください。どんな方法でも問題ありません。 –