[代码即利剑2]用graphviz画流程图

本文介绍如何用graphviz画流程图。

#工具安装

graphviz下载安装

#简单例子

可通过运行一个简单例子,验证是否安装成功。
新建test.dot文件,内容如下:

1
2
3
4
5
6
7
8
9
10
digraph abc{
a;
b;
c;
d;

a -> b;
b -> d;
c -> d;
}

生成svg:

1
dot -Tsvg test.dot -o test.svg

生成的test.svg如下:
test_graphviz

#简单教程

详细教程参考官方文档dotguide

#创建图

1
2
digraph abc {
}

#添加节点

可通过[]设置属性,常用label增加注解,shape指定形状,color指定颜色

1
2
3
4
a [label="节点a", shape="triangle"];
b [label="节点b", shape="circle", color="green"];
c [label="节点c", shape="point"];
d [label="节点d"];

#添加边

可通过[]设置属性,常用label增加注解,style指定形状,color指定颜色

1
2
3
a -> b [label="边ab", style="dashed"];
b -> d [label="边bd", style="dotted", color="green"];
c -> d [label="边ab"];

#子图

可通过subgraph创建子图,通过边在子图之间建立关联

1
2
3
4
5
6
subgraph sub {
x;
y;
z;
d -> x -> y -> z;
}

#完整示例

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
digraph abc {
a [label="节点a", shape="triangle"];
b [label="节点b", shape="circle", color="green"];
c [label="节点c", shape="point"];
d [label="节点d"];

a -> b [label="边ab", style="dashed"];
b -> d [label="边bd", style="dotted", color="green"];
c -> d [label="边ab"];

subgraph sub {
x;
y;
z;
d -> x -> y -> z;
}
}

生成结果如下
demo_graphviz