目录
node布局说明
在rankdir=TB默认值时,可以把画布看做是一个横格作文本
在rankdir=LR时,可以把画布看到横过来的作文本,即线条是竖着的
在节点没有关系指向时,它们都在第一行
当节点有指向关系时,子节点会在父节点的下一行(可以通过rank更改)
使用rank可以使指定的节点都提至rank序列中的最高行(如,x:2,y:5,z:20, 那么y和z都会被提至第2行的高度)
默认布局
digraph g{
A;B;C;D;E;F;H;
}
有指向关系时的布局
digraph g{
A;B;C;D;E;F;H;
A->B;
B->C;
C->D;
D->E;
D->F;
E->H;
}
几个节点做为同一序列元素
digraph g{
// rankdir="LR"
A;B;C;D;E;F;H;
{rank="same"; C;D;E}
A->B;
B->C;
C->D;
D->E;
D->F;
E->H;
}
指定多组同序列
digraph g{
A;B;C;D;E;F;H;
{rank="same"; B;E}
{rank="same"; F;E}
A->B;
B->C;
C->D;
D->E;
D->F;
E->H;
}
使用subgraph使多个node节点做为一个整体
在rankdir=TB时,subgraph节点默认是横向排列,它们占用同一行
在rankdir=LR时,默认它们占用同一列
subgraph子图中的节点默认还是占用一行
digraph g{
A;H;
subgraph cluster_a {
style = "dashed";
B;C;D;
}
subgraph cluster_b {
style = "dashed";
E;F;
}
A->B;
B->E;
B->H;
}
当subgraph有指向关系时,它依然占用画板行
digraph g{
A;H;
subgraph cluster_a {
style = "dashed";
B;C;D; Z;
B->D->C;
}
subgraph cluster_b {
style = "dashed";
E;F;
}
A->B;
B->E;
B->H;
}
在subgraph中,可以使用rank约束节点占用行
digraph g{
A;H;
subgraph cluster_a {
style = "dashed";
{rank="same"; B;C;D}
B;C;D;
B->C->D;
}
subgraph cluster_b {
style = "dashed";
E;F;
}
A->B;
B->E;
B->H;
}