1

为什么graphviz将C绘制在B的右侧?我希望它看起来像

A
B E
C

反而。

digraph  {
    compound=true
    subgraph cluster_1 { a -> b }
    b -> c
    {rank=same b -> e  }
}

替代文字 http://grab.by/33m4

4

2 回答 2

2

因为它会增加图形的总面积,而这是 graphviz 试图最小化的。您可以尝试在包中使用不同的布局实用程序,例如lefty 或neato,看看是否可以获得更好的结果。

于 2010-03-14T17:44:01.533 回答
2

我不确定你能做你正在寻找的东西。

当 dot 对给定的图进行布局时,它会将 cluster_1 视为单个实体以进行排名。因此,如果您愿意,cluster_1 的排名为 0。然后因为您说 {rank=same b, e},e 的排名也为 0。当 dot 绘制 c 时,c 将具有更高的排名 - 排名 1 - 所以它会被绘制低于 e。因为此时它不需要担心 x 轴上的空间,所以它在 e 的正下方绘制 c。

如果您希望节点 c 绝对绘制在您可以添加的所有其他内容之下

{ rank=sink c }

哪个...看起来不像您的目标那么好。

于 2010-03-16T12:30:34.937 回答