使用Graphviz画图

Graphviz使用代码来绘制图形。

绘图代码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
digraph G{
graph[dpi=300];
Add1[label="Add",shape=box];
Add2[label="Add",shape=box];
input[label="Input\n16x2",shape=box];
AT1[label="ATBlock"];
AT2[label="ATBlock"];
AT3[label="ATBlock"];
AT4[label="ATBlock"];
AT5[label="ATBlock"];
AT6[label="ATBlock"];
easyjoints[label="Easy Joints\n8x3"];
normaljoints[label="Easy + Normal Joints\n12x3"];
hardjoints[label="Easy + Normal + Hard Joints\n16x3"];
EasyLabel[label="Easy Joints Loss",shape=none];
NormalLabel[label="Easy + Normal Joints Loss",shape=none];
HardLabel[label="All Joints Loss",shape=none];

input -> AT1;
AT1 -> easyjoints ;
easyjoints -> AT2 -> Add1;
easyjoints -> EasyLabel[dir=back];
input -> AT3 -> Add1;
Add1 -> normaljoints ->AT4 -> Add2;
normaljoints -> NormalLabel[dir=back];
input -> AT5 -> Add2;
Add2 -> AT6 -> hardjoints;
hardjoints -> HardLabel[dir=back];

}

代码说明

graph[dpi=300];设定编译时的分辨率
Add1[label="Add",shape=box];声明一个变量名为Add1的节点,节点处在图中显示“Add”,节点形状为方框。
节点有多种形状可以挑选,可以参考官方文档
->表示此处的连接是有方向的,dir可以是both,back,none

编译

编译命令如下:
dot CascadeNetStructure.dot -T png -o cascade.png
其中-T用于指示图片类型

对应代码生成的图片如下:
img