Graphviz绘图

关于Graphviz

简介

Graphviz是一个开源工具包, 用于绘制DOT语言脚本描述的图形, 它也提供了供其它软件使用的库.

Graphviz由一种被称为DOT语言的图形描述语言与一组可以生成/处理DOT文件的工具组成:

命令 说明
dot 一个用来将生成的图形转换成多种输出格式地命令行工具. <br>其输出格式包括PostScript, PDF, SVG, PNG, 含注解的文本等 <br> 123
neato 用于sprint mode的生成.
twopi 用于放射状图形的生成.
circo 用于圆形图形的生成.
fdp 另一个用于生成无向图的工具.
dotty 一个用于可视化与修改图形的图形用户界面程序.
lefty 一个可编程的控件, 它可以显示DOT图形, 并允许用户用鼠标在图上执行操作. Lefty可以作为MVC模型的使用图形和GUI程序中的视图部分.

DOT语言

DOT语言是一种文本图形描述语言, 它提供了简单的描述图形的方法, 并且可以为人类和计算机程序所理解.

DOT语言文件通常以.gv.dot作为文件扩展名, 很多程序都可以处理DOT文件.

安装

sudo apt-get install graphviz

简单示例

Graphviz画图只需两步:

  • 创建.dot文本文件, 在其中使用DOT语言描述图形;

    Example:

    graph demo {
        "Browser" -- {"Chome", "Firefox",  "Safari", "..."}
    }
    
  • 使用命令将文本内容转换为图片.

    dot demo.dot -T png -o demo.png
    
    # -T指定输出类型, 可以指定jpg, gif, svg等
    # -o 指定输出文件名, 不指定则输出到标准输出上
    

    执行上面的命令后如不出意外则可以看到如下效果:

    graph demo{ "Browser" -- {"Chrome", "Firefox", "Safari", "..."} }

开发工具

可以直接通过上面的这种命令生成图形, 缺点是在编写.dot文件时看不到实时的效果.

有一些工具可以实时查看, 比如vscode中的PlantUML插件.