简介
[https://graphviz.org/pdf/dotguide.pdf]{https://graphviz.org/pdf/dotguide.pdf}
graphviz是贝尔实验室开发的一个开源的工具包,它使用一个特定的DSL(领域特定语言):dot作为脚本语言,然后使用布局引擎来解析此脚本,并完成自动布局。graphviz提供丰富的导出格式,如常用的图片格式,SVG,PDF格式等。
1 | dot 默认布局方式,主要用于有向图 |
安装
1 | brew install graphviz |
例子
demo1
1 | digraph image{ |
执行命令
1 | dot demo1.dot -o demo1.png -Tpng |
demo2
- subgraph定义子图,但是名字必须以cluster开头,否则不识别
- node[]设置当前大括号下节点属性
- edge[]设置当前大括号下线段属性
- 每个节点可以单独设置属性 B[label=”B项目”,color=”green”,style=”filled”,shape=”diamond”]
- 每条联系也可以单独设置属性E->A[label=”失败”,style=”dashed”]
- E->F更多语法
- shape=”diamond”更多形状
- color=”green”更多颜色
- 到这我认为流程图就没问题了,更多请看官方文档执行命令
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17digraph image{
subgraph cluster_cd{
node[shape="box"]
edge [style="dashed"];
label="子图";
bgcolor="mintcream"
E->F->G;
}
B[label="B项目",color="green",style="filled",shape="diamond"]
A->B
B->C[label="成功",style="dashed"]
C->E
G->END
C->END
E->A[label="失败",style="dashed"]
}1
dot demo2.dot -o demo2.png -Tpng
demo3
1 | digraph image{ |
执行命令
1 | dot demo3.dot -o demo3.png -Tpng |
个人体会
graphviz对我的最大意义就是理清逻辑,比如我知道A与B有关,B与C有关,就会自动生成A与C的关系。如果逻辑复杂只需要抽象出一个个的对象,然后分别想清楚某几个对象间的关系,就会自动生成全部的逻辑流程。
I'm so cute. Please give me money.
- Post link: http://dongkw.github.io/2019/12/31/graphviz%E7%94%BB%E5%9B%BE%E5%B7%A5%E5%85%B7/
- Copyright Notice: All articles in this blog are licensed under unless stating additionally.
若没有本文 Issue,您可以使用 Comment 模版新建。
GitHub Issues