来自此图表:
digraph G {
a0 -> a1 -> a2;
x0 -> x1;
b0 -> b1 -> b2;
}
给出了这个图形表示:
a 0 x 0 b 0
| | |
a 1 x 1 b 1
| |
a 2 b 2
我想将 a2 连接到 x1,将 x1 连接到 b2。
所以我尝试了:
digraph G {
a0 -> a1 -> a2;
x0 -> x1;
b0 -> b1 -> b2;
a2 -> x1 [constraint=false];
x1 -> b2 [constraint=false];
}
我的期望是这样的:
a 0 x 0 b 0
| | |
a 1 x 1 b 1
| / \ |
a 2 b 2
但不幸的是它是这样渲染的,我不知道为什么。
a 0 b 0 x 0
| | |
| | |
| | |
a 1 b 1 x 1
| | _ / /
| + /
| _/ | /
a 2 b 2
我怎样才能更好地理解为什么会这样,并帮助我将 x0 -> x1 保持在图表的中间?
最佳答案
添加{rank=same; a0 -> x0 -> b0 [style=invis];}
到您的图表中给出所需的结果 - 这会强制顶部节点按特定顺序排列,但会隐藏为此添加的边。然而,我完全不知道为什么这是必要的。
关于graphviz - 如何理解graphviz点边和节点行为?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50888439/