如果有一个最适合使用dot排列的graphviz有向图,是否有办法解决大型节点在同一级别的其他节点周围创建多余填充的问题?
例如,使用以下图表:
digraph {
b[label="line 1\nline 2\nline 3\nline 4\nline 5\nline 6\n"];
a -> b;
a -> c;
b -> f;
c -> d;
d -> e;
e -> f;
}
由于左手路径增加了在右手路径中不需要如此高的等级的高度,因此图形显然高于必要值。
是否有办法分别布局两条路径?我认为使用集群子图可能会有所帮助,但即使在这种情况下,等级高度似乎也是完全全局的。
答案 0 :(得分:2)
作为解决方法,您可以尝试添加edge[constraint = false];
。
这将为所有边设置constraint
属性值:
或仅为部分边缘指定constraint
属性。
编辑:我们可以在子图的帮助下获得非常接近的结果:
digraph {
rankdir = LR;
b[label="line 1\nline 2\nline 3\nline 4\nline 5\nline 6\n"];
subgraph cluster_0 {
rank = same;
style = invis;
a -> c -> d -> e -> f [constraint = false];
}
a -> b;
b -> f;
}