Graph 为什么图形C在B的右边?

Graph 为什么图形C在B的右边?,graph,graphviz,Graph,Graphviz,为什么图形C在B的右边?我想让它看起来像 A B E C 相反 digraph { compound=true subgraph cluster_1 { a -> b } b -> c {rank=same b -> e } } 因为它会增加图形的总面积,这是graphviz试图最小化的。您可以尝试在软件包中使用不同的布局实用程序,如lefty或neato,以查看是否能获得更好的结果。因为这样会增加图形的总面积,而graphviz正试图将

为什么图形C在B的右边?我想让它看起来像

A
B E
C
相反

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

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

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

我不确定您是否可以完成所需的工作

当dot布置给定的图形时,它将簇_1视为一个单独的实体,以便进行排序。因此,如果您愿意,集群_1的秩为0。因为你说{rank=same b,e},e也有秩0。当dot绘制c时,c将具有更高的秩-秩1-因此它将绘制在e之下。因为此时它不需要担心x轴上的空间,所以它在e的正下方绘制c

如果您希望节点c明确地绘制在您可以添加的所有其他对象的下方

{ rank=sink c }

哪个。。。看起来没有你想要的那么好。

我不确定你能做到你想要的

当dot布置给定的图形时,它将簇_1视为一个单独的实体,以便进行排序。因此,如果您愿意,集群_1的秩为0。因为你说{rank=same b,e},e也有秩0。当dot绘制c时,c将具有更高的秩-秩1-因此它将绘制在e之下。因为此时它不需要担心x轴上的空间,所以它在e的正下方绘制c

如果您希望节点c明确地绘制在您可以添加的所有其他对象的下方

{ rank=sink c }

哪个。。。它看起来不像你想要的那么好。

它看起来好像与子图有关。如果你只有有向图{a->b;b->c;{rank=same b->e},那么你得到了你想要的排名。。。没有子图。看起来它和子图有关。如果你只有有向图{a->b;b->c;{rank=same b->e},那么你得到了你想要的排名。。。没有子图。