我有一个简单的垂直图,使用以下代码看起来漂亮且对称,没有任何标签:
digraph test_alignment
{
{rank=same; a -> b;}
a -> c;
b -> c;
c -> d;
d -> e;
d -> f;
{rank=same; e -> f;}
}
Run Code Online (Sandbox Code Playgroud)

我想标记 A 和 B 之间的边缘以及 E 和 F 之间的边缘,对每个标签使用相同的字符串。我期待相同的输出,除了带有相同标签的更长的 A->B 和 E->F 边。
不幸的是,一旦我向这些边之一添加标签,总体布局就会看起来有点歪斜(如果我向 E->F 边添加标签,结果是相似的):
digraph test_alignment
{
{rank=same; a -> b [label="Label"];}
a -> c;
b -> c;
c -> d;
d -> e;
d -> f;
{rank=same; e -> f;}
}
Run Code Online (Sandbox Code Playgroud)

我对 graphviz 非常陌生,并且根据 Stack Overflow 上的许多问题,我一直在尝试不同的秩和约束组合,我尝试使用集群来查看它是否可以独立地保持顶部和底部正确对齐,并尝试使用dot、ccomp、gvpack 和neato 的组合产生了类似的结果。 …