平常开发或者编写课程论文时,除了代码文档的编写,其中一个很重要的部分就是须要绘制流程图、示意图算法
绘制流程图有不少工具,通常常见的就有以下几种:vim
对于这些软件不管功能强大与否,适合与否,方便与否,都具备一个特色——所见即所得。你制做过程当中看到的就是最终获得的结果。图中形式、布局在制做过程当中都由本身设置,其实还有一类绘图系统的存在,其思想是——所思即所得。其中具备表明性的软件就是——Graphviz。Graphviz是贝尔实验室开发的一个开源的工具包,它使用一个特定的DSL(领域特定语言)——Dot做为脚本语言,而后使用布局引擎解析脚本并完成自动布局。Graphviz的设计初衷是对图进行自动布局(有向图、无向图、),可使用dot脚原本定义图形元素,选择必定的算法进行布局,经过对输入脚本的解析,分析出其中的点,边以及子图,而后根据属性进行绘制,继而将结果以本身须要的格式导出来。浏览器
相对于其余的绘图软件,Granphviz的特色有以下几个方面:编辑器
以下即为Graphivz官网上的一些示例效果:svg
咱们先来看一个小例子来看一下使用Graphviz绘制一张图的完整流程(我使用的是Ubuntu 14.04 LTS,在其它系统上的使用应该差很少,下面再也不标注了)。工具
要使用Graphviz,先要在系统上安装Graphviz。在Ubuntu上可使用命令sudo apt-get install graphviz
进行安装,在其余系统安装的方法能够查看Graphviz官网进行查看。程序安装好以后咱们就可已使用了。布局
Step 1:首先,须要编辑dot脚本编码
可使用你熟悉的纯文本编辑器进行脚本编写(必须是纯文本编辑器,如vim、notepad++,像word这样的富文本编辑器是不行的),只需设置编码为UTF-8。设计
编辑下面的脚本代码,保存为test.dot
(先不用管其具体的意思,直接复制就好了):code
digraph G{ main -> parse -> execute; main -> init; main -> cleanup; execute -> make_string; execute -> printf; init -> make_string; main -> printf; execute -> compare; }
Step 2:随后,选用布局生成结果
使用以下命令生成结果:
dot -Tpng sample.dot -o sample.png
对于这条命令,dot
表示用dot布局,-Tpng
表示生成png图片格式,sample.dot
是脚本文件名,-o sample.png
表示生成输出的图片名称。
改命令也能够写成dot -Kdot -Tpng sample.dot -o sample.png
,其中-Kdot
表示使用dot布局。
Graphviz支持几种布局引擎:
Graphviz支持的输出图片格式更是至关的多,经常使用的有如下几种:
Step 3:查看生成结果
输出的图片,能够用支持相应图片格式的软件打开。Graphviz软件安装好以后,有一个图片浏览器能够进行图片预览,只需输入命令display sample.png
便可(sample.png为生成的图片文件名),该示例预览结果以下(你能够在上一步使用不一样的布局方式,查看一下结果有什么不一样):
正确完成三个步骤获得结果说明Graphviz已经能够在你的系统中正确安装可使用了。后续我会介绍Graphviz Dot脚本的具体编写方法。