如何控制 GraphViz 中的节点位置
How to control node positions in GraphViz
我有以下图表Link
我想将最后一行设为 f20 f21 f22 f23 以便边 f21-f11 和 f22-f10 相互交叉。基本上这棵树会向下生长得更多,我需要对所有节点进行排序 (f20 f21 f22 f23)
您可以通过使用
的组合来实现 the desired result
- 不可见边和
- 边
constraint=false
我将 constraint=false
添加到应该交叉的边缘,以免它们影响布局。然后需要 2 个更多的不可见边缘以使布局引擎将节点放置在正确的位置 - f21
应该在 f10
下,f22
应该在 f11
.[=18 下=]
digraph G {
dir="back";
f00 -> f10[dir="back"];
f00 -> f11[dir="back"];
f10 -> f20[dir="back"];
// invisible edges for the layout
f11 -> f22[style=invis];
f10 -> f21[style=invis];
// crossing edges without constraint
f10 -> f22[dir="back", constraint=false];
f11 -> f21[dir="back", constraint=false];
f11 -> f23[dir="back"];
}
我有以下图表Link
我想将最后一行设为 f20 f21 f22 f23 以便边 f21-f11 和 f22-f10 相互交叉。基本上这棵树会向下生长得更多,我需要对所有节点进行排序 (f20 f21 f22 f23)
您可以通过使用
的组合来实现 the desired result- 不可见边和
- 边
constraint=false
我将 constraint=false
添加到应该交叉的边缘,以免它们影响布局。然后需要 2 个更多的不可见边缘以使布局引擎将节点放置在正确的位置 - f21
应该在 f10
下,f22
应该在 f11
.[=18 下=]
digraph G {
dir="back";
f00 -> f10[dir="back"];
f00 -> f11[dir="back"];
f10 -> f20[dir="back"];
// invisible edges for the layout
f11 -> f22[style=invis];
f10 -> f21[style=invis];
// crossing edges without constraint
f10 -> f22[dir="back", constraint=false];
f11 -> f21[dir="back", constraint=false];
f11 -> f23[dir="back"];
}