为什么graphviz将C绘制在B的右侧?我希望它看起来像
A
B E
C
反而。
digraph {
compound=true
subgraph cluster_1 { a -> b }
b -> c
{rank=same b -> e }
}
为什么graphviz将C绘制在B的右侧?我希望它看起来像
A
B E
C
反而。
digraph {
compound=true
subgraph cluster_1 { a -> b }
b -> c
{rank=same b -> e }
}
因为它会增加图形的总面积,而这是 graphviz 试图最小化的。您可以尝试在包中使用不同的布局实用程序,例如lefty 或neato,看看是否可以获得更好的结果。
我不确定你能做你正在寻找的东西。
当 dot 对给定的图进行布局时,它会将 cluster_1 视为单个实体以进行排名。因此,如果您愿意,cluster_1 的排名为 0。然后因为您说 {rank=same b, e},e 的排名也为 0。当 dot 绘制 c 时,c 将具有更高的排名 - 排名 1 - 所以它会被绘制低于 e。因为此时它不需要担心 x 轴上的空间,所以它在 e 的正下方绘制 c。
如果您希望节点 c 绝对绘制在您可以添加的所有其他内容之下
{ rank=sink c }
哪个...看起来不像您的目标那么好。