gpt4 book ai didi

graphviz - 如何避免 Graphviz 点布局浪费空间,不同大小的节点处于同一等级?

转载 作者:行者123 更新时间:2023-12-03 06:23:07 25 4
gpt4 key购买 nike

当有一个最适合使用点排列的 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;
}

(result of the above)

由于左侧路径增加了等级的高度,而右侧路径中不需要那么高,因此图表明显高于必要的高度。

是否有办法分别布局两条路径?我认为使用聚类子图可能会有所帮助,但即使在这种情况下,排名高度似乎也是完全全局的。

我希望得到类似于此图像编辑的结果(请原谅它的粗糙): enter image description here

最佳答案

作为解决方法,您可以尝试添加 edge[constraint = false];
这将设置 constraint所有边的属性值:

Rendered graph

或者仅为某些指定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;

}

将呈现如下:

Rendered graph

关于graphviz - 如何避免 Graphviz 点布局浪费空间,不同大小的节点处于同一等级?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47850462/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com