Graphviz 有没有一种方法可以始终控制点子图的顺序?

Graphviz 有没有一种方法可以始终控制点子图的顺序?,graphviz,dot,Graphviz,Dot,“constraint=false”有时允许簇无序,即使这样做会导致更长的边。我希望所有子图簇都排列整齐,并且保持子图簇的顺序不变。(在我的例子中,由于我总是只将边连接到相邻群集的节点,因此会导致边不跨越中间子图。有时它会按预期工作,但在我发布的示例中,您可以看到“第二”子图出于某种原因显示在第三个位置(这会导致链接超出其需要的范围。) 有没有一种方法既可以实现所有子图顶部的对齐,又可以实现“保持子图从左到右的特定顺序” 我读过很多帖子,也尝试过很多建议,但我似乎找不到一个有效的组合。当cons

“constraint=false”有时允许簇无序,即使这样做会导致更长的边。我希望所有子图簇都排列整齐,并且保持子图簇的顺序不变。(在我的例子中,由于我总是只将边连接到相邻群集的节点,因此会导致边不跨越中间子图。有时它会按预期工作,但在我发布的示例中,您可以看到“第二”子图出于某种原因显示在第三个位置(这会导致链接超出其需要的范围。)

有没有一种方法既可以实现所有子图顶部的对齐,又可以实现“保持子图从左到右的特定顺序”

我读过很多帖子,也尝试过很多建议,但我似乎找不到一个有效的组合。当constraint=true时,“顺序”似乎是正确的,但对齐方式是错误的。当constraint=false时……对齐方式是正确的,“有时”顺序是正确的,但其他类似于发布的示例,顺序无效d

digraph G {
ranksep=.05;
splines=line;

subgraph cluster_1 {
label="1";
choice0_0[label="1"];
choice0_1[label="2"];
choice0_2[label="3"];
choice0_0 -> choice0_1 -> choice0_2 [style="invis"];
}
subgraph cluster_2 {
label="2";
choice1_0[label="1"];
choice1_1[label="2"];
choice1_2[label="3"];
choice1_0 -> choice1_1 -> choice1_2 [style="invis"];
}
subgraph cluster_3 {
label="3";
choice2_0[label="1"];
choice2_1[label="2"];
choice2_2[label="3"];
choice2_0 -> choice2_1 -> choice2_2 [style="invis"];
}
edge[constraint=false];
choice0_2 -> choice1_1;
choice1_1 -> choice2_2;
}
dot-Tps x.gv-o x.ps

(其中x.gv包含上面粘贴的代码)


运行此操作时不会显示错误,但在本例中,第二个子图和第三个子图的顺序被交换。

p.S.此问题可以通过将代码粘贴到p.S中来复制。此问题可以通过将代码粘贴到p.S中来复制