我想要的图表包含一个顶行;最右边的节点(T3)然后指向A. A到E在垂直列中,C和F垂直对齐,H,I和J垂直对齐。另外,C,F和H水平对齐,E,G和J水平对齐。
当我在已经存在的子图之前添加子图cluster_0时,即子图cluster_0 {rank = same; A - > B - > C-> D-> Ë; },子图水平对齐......
如何在不发生这种情况的情况下引入群集?此外,从T3到A的边缘几乎是直的。我会很好,如果它直接向下,向右倾斜到左边然后向右倾斜到A.
这是有效的:
digraph G { rankdir = LR ranksep = 1.2 nodesep = 0.5
T1 -> T2 -> T3;
{ rank=same; A -> B -> C -> D -> E; }
C -> F
{ rank=same F -> G[style=invis] }
E->G
{ rankdir=LR rank=same H -> I -> J}
F -> H [style=dotted]
G -> J [style=invis]
edge [constraint=false]
T3->A
}
这是不起作用的
digraph G { rankdir = LR ranksep = 1.2 nodesep = 0.5
T1 -> T2 -> T3;
subgraph cluster_0 { rank=same; A -> B -> C -> D -> E; }
C -> F
subgraph cluster_1 { rank=same F -> G[style=invis] }
E->G
subgraph cluster_2 { rankdir=LR rank=same H -> I -> J}
F -> H [style=dotted]
G -> J [style=invis]
edge [constraint=false]
T3->A
}
答案 0 :(得分:0)
这是我能得到的尽可能接近,但群集肯定会引入一些差异。而且几乎笔直的"我用splines=ortho
更正了一行。我用一条看不见的边缘将ABCDE子图移到了T1。
digraph G { rankdir=TB ranksep = 0.5 nodesep = 0.5 splines=ortho
{rank=same T1 -> T2 -> T3;}
T1->A [style=invis]
subgraph cluster_0 {rank=min A -> B -> C -> D -> E; }
C -> F
subgraph cluster_1 { rank=same F -> G[style=invis] }
E->G
subgraph cluster_2 { rankdir=LR rank=same H -> I -> J}
F -> H [style=dotted]
G -> J [style=invis]
edge [constraint=false]
T3->A
}