• 使用Graphviz绘图(一)



    前言

    日常开发或者编写课程论文时,除了代码文档的编写,其中一个很重要的部分就是需要绘制流程图、示意图

    绘制流程图有很多工具,一般常见的就有如下几种:

    • Word、PPT等办公软件
    • Viso以及开源的Dia
    • 画图(MSPaint)、PS、AI
    • PicPicke
    • 在线流程图绘制(eg. www.processon.com)

    对于这些软件无论功能强大与否,适合与否,方便与否,都具有一个特点——所见即所得。你制作过程中看到的就是最终得到的结果。图中形式、布局在制作过程中都由自己设置,其实还有一类绘图系统的存在,其思想是——所思即所得。其中具有代表性的软件就是——Graphviz。Graphviz是贝尔实验室开发的一个开源的工具包,它使用一个特定的DSL(领域特定语言)——Dot作为脚本语言,然后使用布局引擎解析脚本并完成自动布局。Graphviz的设计初衷是对图进行自动布局(有向图、无向图、),可以使用dot脚本来定义图形元素,选择一定的算法进行布局,通过对输入脚本的解析,分析出其中的点,边以及子图,然后根据属性进行绘制,继而将结果以自己需要的格式导出来。

    相对于其他的绘图软件,Granphviz的特点有如下几个方面:

    • 代码控制,所思即所得
    • 布局引擎自动布局
    • (导出格式非常丰富)

    如下即为Graphivz官网上的一些示例效果:

    一个生成有向图的小例子

    我们先来看一个小例子来看一下使用Graphviz绘制一张图的完整流程(我使用的是Ubuntu 14.04 LTS,在其它系统上的使用应该差不多,下面不再标注了)。

    要使用Graphviz,先要在系统上安装Graphviz。在Ubuntu上可以使用命令sudo apt-get install graphviz进行安装,在其他系统安装的方法可以查看Graphviz官网进行查看。程序安装好之后我们就可已使用了。

    Step 1:首先,需要编辑dot脚本

    可以使用你熟悉的纯文本编辑器进行脚本编写(必须是纯文本编辑器,如vim、notepad++,像word这样的富文本编辑器是不行的),只需设置编码为UTF-8。

    编辑下面的脚本代码,保存为test.dot(先不用管其具体的意思,直接复制就行了):

    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支持几种布局引擎:

    • dot : 默认布局方式,主要用于有向图
    • neato : 主要用于无向图
    • twopi : 主要用于径向布局
    • circo : 圆环布局
    • fdp : 主要用于无向图
    • sfdp : 主要绘制较大的无向图
    • patchwork : 主要用于树哈希图(tree map)

    Graphviz支持的输出图片格式更是相当的多,常用的有以下几种:

    • pdf :
    • gif
    • png :
    • jpeg : 一种有损压缩图片格式
    • bmp : 一种位图格式
    • svg : 矢量图,一般用与Web,,可以用浏览器打开
    • ps : 矢量线图,多用于打印
      更多的输出格式可以浏览Graphviz输出格式进行查看。

    Step 3:查看生成结果

    输出的图片,可以用支持相应图片格式的软件打开。Graphviz软件安装好之后,有一个图片浏览器可以进行图片预览,只需输入命令display sample.png即可(sample.png为生成的图片文件名),该示例预览结果如下(你可以在上一步使用不同的布局方式,查看一下结果有什么不同):

    正确完成三个步骤得到结果说明Graphviz已经可以在你的系统中正确安装可以使用了。后续我会介绍Graphviz Dot脚本的具体编写方法。

  • 相关阅读:
    [windbg] 进程、线程
    [Windows 驱动开发] 驱动中获取函数地址
    [DuiLib] 入坑资料收集
    [Windows 驱动开发] 获取驱动详细信息
    基于模板的SPS展示层定制
    关于工作角色的一个新的思考
    中小企业IT建设的有关思路
    定制SharePoint Portal之去除帮助链接
    大客户谈判技巧关于IT行业售前工作
    细节决定成败
  • 原文地址:https://www.cnblogs.com/taceywong/p/5439574.html
Copyright © 2020-2023  润新知