我正在尝试在Graphviz中使多个节点集均匀分布。如下图所示,我认为图像最好地解释了我的意图:在第2层和第3层之间存在额外的间距。第2层和第3层之间的间隔应该与第1层和第2层之间的间隔相同。间距还需要随着超过3个层的节点而自适应调整。当我尝试使用超过3个层时,第4层的间距与第3层一样糟糕。以下是我的图形文件:
digraph G {
nodesep=1.25;
splines=false;
node[width=1, shape=circle];
edge[style=invis];
subgraph cluster_1 {
label="Layer 1";
"1-1" -> "1-2" -> "1-3";
}
subgraph cluster_2 {
label="Layer 2";
"2-1" -> "2-2" -> "2-3";
}
subgraph cluster_3 {
label="Layer 3";
"3-1" -> "3-2" -> "3-3";
}
edge[style=solid, penwidth=1, constraint=false];
"1-1" -> "2-1";
"1-3" -> "2-1";
"1-1" -> "2-2";
"1-2" -> "2-2";
"1-2" -> "2-3";
"1-3" -> "2-3";
"2-1" -> "3-1";
"2-3" -> "3-1";
"2-1" -> "3-2";
"2-2" -> "3-2";
"2-2" -> "3-3";
"2-3" -> "3-3";
}
我该如何使我的间距对称?非常感谢您的帮助。谢谢。
更新: 我已经成功地使间距变得均匀,但这不是一个完美的解决方案。
通过在图形上方放置一个不可见节点,并将其连接到每层的顶部节点,可以使层次结构间距均匀。然而,这个节点会破坏需要添加到图像上方的内容的间距。所以,有没有更好的方法来解决这个问题呢?
"x-3" -> "y-1"
与样条曲线环绕节点"y-2"
的位置。 - stefan