从Graphviz显示图像而不创建中间文件?

时间:2013-04-12 23:40:58

标签: command-line graphviz

我想首先显示图形而不编写文件。

假设我有一个命令foo,可以在标准输出中生成它:

digraph foogrph {
   a -> b;
   a -> c;
}

我想要做的是将foo传递到dot,然后将结果传输到一个命令中,该命令将在图形环境中显示图像。

foo | dot -Tpng | <display command>

我找到了一个涉及临时文件的解决方法。在OSX中,我可以执行以下操作:

foo | dot -Tpng > temp && open temp

但我仍然需要从文件系统中删除该文件。

如何显示正在写入标准输出的图像?

3 个答案:

答案 0 :(得分:4)

使用ImageMagick的display命令,这些工作在Ubuntu 12.10上(很可能也是其他操作系统):

dot abac.dot -Tsvg | display
dot abac.dot -Tpng | display

SVG具有使用窗口平滑缩放的优势(如果这是您想要的)。

答案 1 :(得分:0)

在Linux上,您也可以只使用asc('a')来显示直接的X11窗口。

答案 2 :(得分:0)

在OSX和iTerm2上,您可以执行以下操作(假设已安装imgcat

dot abac.dot -Tpng | imgcat

enter image description here