gpt4 book ai didi

graphviz - 使用点时如何对子图簇进行排序?

转载 作者:行者123 更新时间:2023-12-03 16:15:15 24 4
gpt4 key购买 nike

我有一个点文件,我在其中创建了我想以特定顺序出现的子图簇,假设我有这个:

digraph G {
splines=true;
sep="+25,25";
overlap=scalexy;
nodesep=0.6;
subgraph cluster_2 {
label="ADD_MORE_PROBLEMS";
subgraph cluster_3 {
label="pattern";
N1 [label="problem"];
}
subgraph cluster_4 {
label="replacement";
N2 [label="problem"];
N3 [label="problem"];
}
}
}

这创造了:

output from dot

如何确保“模式”出现在“替换”的左侧(我可能有任意数量的子图)。

最佳答案

我不能给出和回答,但可以提供一些澄清。强制布局的常用方法是引入隐藏边。在这种情况下,它不起作用。

如果没有嵌套集群,您可以使用 rank=same强制连接的边缘到同一水平。然后,一条看不见的边N1 -> N2 [style = invis]将强制节点进入正确的排序。

但是,使用等级约束节点会破坏集群成员资格并阻止该方案工作。

修改后的图表显示了结果。可能没有通用的解决方案。

digraph G {
splines=true;
sep="+25,25";
overlap=scalexy;
nodesep=0.6;
subgraph cluster_2 {
label="ADD_MORE_PROBLEMS";
subgraph cluster_3 {
label="pattern";
N1 [label="problem 1"];
}
subgraph cluster_4 {
label="replacement";
N2 [label="problem 2"];
N3 [label="problem 3"];
}
// Introduce hidden edge (shown dashed)
N1 -> N2 [style = dashed];
// Force nodes to remain at same rank
{ rank = same; N1; N2; }
}
}

Constrained luster ordering

关于graphviz - 使用点时如何对子图簇进行排序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42463616/

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