Graphviz - dot
Graphviz (英文:Graph Visualization Software的缩写)是一个由AT&T实验室启动的 开源工具包,可以用于绘制DOT语言脚本描述的图形。它也提供了供其它软件使用的库。 Graphviz是一个自由软件,其授权为Eclipse Public License。其Mac版本曾经获得2004年 的苹果设计奖2。
命令 | 说明 |
---|---|
dot | 一个用来将生成的图形转换成多种输出格式的命令行工具。其输出格式包括PostScript,PDF,SVG,PNG,含注解的文本等等。 |
neato | 用于sprint model的生成(在Mac OS版本中称为energy minimized)。 |
twopi | 用于放射状图形的生成 |
circo | 用于圆形图形的生成。 |
fdp | 另一个用于生成无向图的工具。 |
dotty | 一个用于可视化与修改图形的图形用户界面程序。 |
lefty | 一个可编程的(使用一种被EZ影响的语言[4])控件,它可以显示DOT图形,并允许用户用鼠标在图上执行操作。Lefty可以作为MVC模型的使用图形的GUI程序中的视图部分。 |
layout 属性控制 ,layout = neato
- 官网:http://www.graphviz.org/
- 官方文档:http://www.graphviz.org/Documentation.php
- 下载地址:http://www.graphviz.org/Download..php
- 在线测试:https://dreampuf.github.io/GraphvizOnline/
plantuml 支持 使用
#@startdot ... #@enddot
brew install graphviz
touch x.dot
dot x.dot -T png -o x.png
语法
- 无向图
graph G{
A -- B
}
- 有向图
digraph G{
A --> B
}
- subgraph 子图
graph G {
subgraph SG {
}
}
常用图属性
使用 {...}
属性名 | 默认值 | 说明 |
---|---|---|
label | 图片标签,如上面示例 | |
bgcolor | 背景颜色,颜色文档点此 | |
fontcolor | black | 字体颜色,定义上面示例的颜色 |
fontname | Times-Roman | 字体 |
fontsize | 14 | 字体大小 |
rank | 子图等级限制, same,min,max,source,sink | |
rankdir | TB | 排序方向,LR(left to right) or TB(top to bottom) |
compound | false | If true, allow edges between clusters. 配合 lhead 和 ltail 使用 |
常用节点属性
使用 node [...]
设置默认属性 A [...]
属性名 | 默认值 | 说明 |
---|---|---|
label | node name | 节点显示内容 |
color | black | node边框颜色 |
fontcolor | black | 字体颜色 |
fillcolor | 背景色 | |
fontname | Times-Roman | 字体 |
fontsize | 14 | 字体大小 |
shape | ellipse | 形状,box、ellipse、circle、diamond、plaintext、point、triangle、invtriangle |
style | 图形样式,eg. bold、dashed、dotted、filled | |
image | 背景图片地址 |
常用边属性
使用 edge [...]
设置默认属性, A -- B [...]
属性名 | 默认值 | 说明 |
---|---|---|
label | 描述关系 | |
color | black | 箭头颜色 |
fontcolor | black | 关系文字颜色 |
dir | forward | 设置方向:forward,back,both,none |
arrowhead | normal | 箭头头部形状。box、crow、diamond、dot、none、normal、vee。箭头文档点此 |
arrowtail | 箭头尾部形状 | |
arrowsize | 1.0 | 箭头大小 |
style | 图形样式,eg. bold、dashed、dotted、filled | |
lhead | 当 compound 为true时,lhead用于指定边指向的cluster | |
ltail | 与ltail类似 |
子图
- subgraph
- subdigraph
其他
多节点联合
{A B} -- {C D}
图形节点