Graphviz:如何将.dot文件转换成图形?

573

我似乎无法解决这个问题。我有一个.dot文件,它的语法是合法的。如何使用Graphviz将其转换为图像?

(请注意,我在Windows上,不是Linux)


19
对于Windows操作系统:下载.msi文件并安装;在程序列表中找到“gvedit.exe”;打开所需的.dot文件;点击工具栏上的运行图标;进入“图形->设置”选项;更改“输出文件类型”为您喜欢的文件类型,然后按“确定”。它不会提示任何信息,您只需在与.dot文件相同的目录中找到该文件即可。 - ashley
12个回答

576

类型:dot -Tps filename.dot -o outfile.ps

如果你想使用dot渲染器,还有像neato和twopi这样的替代品。如果graphiz不在你的路径中,请找出它安装的位置并从那里运行它。

你可以通过在-T后面变化数值并选择适当的文件扩展名来更改输出格式

如果你正在使用Windows,请查看已安装的名为GVEdit的工具,它可以使整个过程稍微容易一些。

前往graphviz网站的“用户指南”部分以获取有关如何使用工具的更多详细信息:

http://www.graphviz.org/documentation/

(例如,查看第27页以获取dot命令的输出格式)

http://www.graphviz.org/pdf/dotguide.pdf


3
不知何故,GVEdit预览总是显示图像为空白。当我尝试保存图像时,什么也没有发生。 - Nick Heiner
8
GVEdit是否能记住布局窗口的大小和位置?每当我按F5时,它总是将布局窗口的大小缩小回默认值,这让我很烦恼! - Matthew Lock
@PaulMcMillan,你能帮我解决这个问题吗:http://stackoverflow.com/questions/26477403/graphviz-dot-to-ps-issue,我的输出被限制在一个固定的页面上,有些部分超出了页面。 - Amir
据我所知,GVEdit无法记住窗口。我同意用户体验还有待改善。 - Paul McMillan
2
由于版权限制,版本2.38之后的gvedit二进制文件未被包含。类似的Msc-generator提供了更加精细的界面。布局并不总是相同。 - Pekka
显示剩余3条评论

278
dot -Tps input.dot > output.eps
dot -Tpng input.dot > output.png

似乎总是有PostScript输出。我不确定dot是否默认具有PNG输出。这可能取决于您如何构建它。


58
建议使用“-o”参数替代“>”。 - Rytek
12
根据您的系统所支持的支持,您可以导出各种文件格式。我发现dot -Tsvg input.dot > output.svg非常有用。 - Thane Brimhall
7
让dot根据输入的文件名和文件类型选择文件名,这样会稍微容易些:dot -Tpng -O file.dot(将产生file.png)。 - Andrew Mackenzie
1
相同的命令在macOS上通过macports也可以工作。 :) - elulcao

114

dot file.dot -Tpng -o image.png

该命令适用于Windows和Linux系统,需要安装Graphviz。


2
将Graphviz添加到路径。 - Anupama G
11
在OSX上,您需要先使用Homebrew安装Graphviz:brew install graphviz - Dennis
1
我可以用dot生成一个png图像,但背景是白色的。我需要一个透明的背景。有什么办法可以实现吗? - Sujai Sivasamy
1
  1. 从 https://graphviz.gitlab.io/_pages/Download/Download_windows.html 安装Graphviz
  2. 将'C:\Program Files (x86)\Graphviz2.38\bin'添加到系统变量PATH中
  3. 打开cmd并进入保存.dot文件的目录
  4. 使用命令'dot yourFile.dot -Tpng -o image.png'
- Subhashi

58
还有在线查看器:
- [链接1](http://www.webgraphviz.com/) - [链接2](https://dreampuf.github.io/GraphvizOnline/) - [链接3](https://github.com/mdaines/viz.js) → emscripten → [链接4](http://viz-js.com/) - [链接5](Using WASM port in ObservableHQ) - [链接6](https://sketchviz.com/new)

33
我完全忘记我曾经编写过这个东西,而且已经很久没有再想起来了。我不知道有多少人与它相关联! - user764357
1
添加一个捐赠按钮 ;) - Ivan Ferrer Villa
我正在尝试从http://www.quut.com/c/ANSI-C-grammar-y.html生成C语言文法图表,但是没有成功。这个文法太大了吗? - Thuy Nguyen

34

下载 graphviz-2.24.msi,下载链接在 Graphviz.org。之后获取 zgrviewer

zgrviewer 需要 java 环境 (版本可能需要 1.5 或更高)。您可能需要在 zgrviewer 的偏好设置中设置 Graphviz 二进制文件的路径。

选择菜单 "File -> Open -> Open with dot -> SVG pipeline (standard) ...",然后选择您的 .dot 文件即可。

您可以缩放、导出以及进行各种有趣的操作。


7
很多功能,但界面设计有些混乱! - Casebash

29

这应该结合了许多答案。

# Convert dot to png via graphviz
dot -Tpng filename.dot -o filename.png

# Convert dot to svg via graphviz
dot -Tsvg filename.dot -o filename.svg

# Convert dot to eps via graphviz
dot -Tps filename.dot -o filename.eps

请记住,在OSX(MAC)上,您需要安装homebrew才能安装graphviz以使用上述dot命令。


请记住,在OSX(MAC)上,您需要安装homebrew才能安装graphviz以使用上述dot命令。
brew install graphviz

如果您已经安装了Anaconda,也可以通过conda的软件包管理功能安装Graphviz(并使用上面的命令)。

conda install python-graphviz

10
您可以使用VS Code并安装Graphviz扩展,或者,
  1. https://graphviz.gitlab.io/_pages/Download/Download_windows.html安装Graphviz
  2. C:\Program Files (x86)\Graphviz2.38\bin(或您的安装路径/bin)添加到系统变量PATH中
  3. 打开cmd并进入保存.dot文件的目录
  4. 使用命令dot music-recommender.dot -Tpng -o image.png

enter image description here


9
你还可以将文件输出为xdot格式,然后使用JavaScript库canviz在浏览器中呈现它。 Canviz on code.google.com
要查看示例,请参见上述页面上的“Canviz演示”链接,截至2014年11月2日。

8

非常感谢,我一直感到很愚蠢,没有得到dot的查看器版本! :) - Xenos

4

在我的Windows 10上,$ dot -T pdf filename.dot > filename.pdf 这个命令可行。


某种程度上,PDF 是唯一对我有效的。 - hostar

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接