有没有办法始终控制点子图的顺序?

时间:2019-10-15 22:34:11

标签: graphviz dot

'constraint = false'有时'允许群集混乱,即使这样做也会导致更长的边缘。我希望所有子图聚类都排成一行并保持子图聚类的顺序完整。 (在我的情况下,由于我始终仅将边线连接到邻近群集的节点,因此将导致边线不会越过中间子图。有时它会按预期工作,但是在我发布的示例中,您可以出于某种原因,请参见“第二”子图显示在第三位置(这会导致链接超出其所需的距离。)

是否有办法既实现子图所有顶部的排列又保持子图从左到右的特定顺序?

我阅读了许多帖子,并尝试了许多建议的方法,但是我似乎找不到有效的组合。当constraint = true时,“顺序”似乎是正确的,但是对齐方式是错误的。当constraint = false ...对齐方式正确并且“有时”顺序正确时,但是其他示例(例如发布的示例),顺序无效。

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;
}

点-Tps x.gv -o x.ps

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

运行该命令时不会显示任何错误,但是在此示例中,第二和第三子图的顺序被交换。

0 个答案:

没有答案