问题描述
该笔记将记录:通过 Graphviz 绘图的快速入门,常用的图形控制,常见问题的解决办法;
解决方案
使用 Graphviz 绘制图的主要工作集中在编写 DOT 脚本文件,Graphviz 通过解析 DOT 脚本文件产生图。
下面是个简单的 DOT 脚本示例,文件名为 demo.dot:
digraph G{ main -> demojdf -> demo; main -> demojasd; main -> demojsdf -> ifonffasdf; main -> demojsdfas -> demoasdfs; }
使用 demo.dot 生成图的命令为:dot -Tjpg /tmp/demo.dot > /tmp/demo.png,执行该命令后会生成一张 GIF 图,图的内容如下:
上面是一个简单的示例,当然这只是一个极其简单的示例,只是为了稍作演示;
各个节点的样式也是可以自定义的,下面看一个稍微复杂的例子:
digraph structs { // 定义节点的形状,矩形 node [shape=record]; // 定义节点及节点的属性、样式等; struct1 [shape = record, label = "<f0> left|<f1> mid dle|<f2> right"]; struct2 [shape = record, label = "<f0> First|<f1> Second"]; struct3 [shape = record, label = "Hello\nWorld |{ b |{<f0> c|<d3> d|e}| f}| g | h"]; // 定义节点之间的关系; struct1:f0 -> struct2; struct1:f2 -> struct3:d3; struct1 -> struct3:f0; }
依旧执行图生成命令:
dot -TPNG /tmp/demo.dot > /tmp/demo.png
执行该命令后生成的 PNG 图的内容如下:
常见使用示例
参考文献