在python中将点转换为png

29 python png dot

我有一个从我的代码生成的点文件,并希望在我的输出中呈现它.为此,我在网上看到命令是这样的cmd

dot -Tpng InputFile.dot -o OutputFile.png  for Graphviz
Run Code Online (Sandbox Code Playgroud)

但我的问题是我想在我的python程序中使用它.

我怎么能这样做?

我看着pydot,但似乎无法在那里找到答案.....

Jud*_*den 45

加载文件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')
Run Code Online (Sandbox Code Playgroud)

  • 我还面临“路径中未找到“点””,并且我将其存在于 PATH 环境变量中。我可以在 Anaconda Prompt 中运行“dot”。 (5认同)
  • 我正在使用这个,但我遇到一个问题,说“[Errno 2]“点”在路径中找不到。” (3认同)
  • 这就像一个魅力,但让我问一个(愚蠢的)问题:为什么它适用于`(graph,)= pydot ...`但不能用`graph = pydot ...`(我得到`AttributeError:' list'对象没有属性'write_png')`? (2认同)

Mar*_*air 22

pydot无论如何都需要安装GraphViz二进制文件,所以如果你已经生成了你的点文件,你也可以直接自己调用点.例如:

from subprocess import check_call
check_call(['dot','-Tpng','InputFile.dot','-o','OutputFile.png'])
Run Code Online (Sandbox Code Playgroud)


nmi*_*els 5

您可以使用pygraphviz。加载图形后,您可以执行

graph.draw('file.png')
Run Code Online (Sandbox Code Playgroud)


Sam*_*rry 5

您可以使用graphviz

# Convert a .dot file to .png
from graphviz import render
render('dot', 'png', 'fname.dot')

# To render an existing file in a notebook
from graphviz import Source
Source.from_file("fname.dot")
Run Code Online (Sandbox Code Playgroud)