带Graphviz的垂直和水平集管

带Graphviz的垂直和水平集管,graph,orientation,graphviz,Graph,Orientation,Graphviz,我需要用Graphviz创建垂直和水平标题,但我不知道如何使两个子图具有不同的方向。我试过使用rankdir,但显然它不适用于子图。我不知道如何进行。谢谢你的帮助 digraph Table{ node[shape=box style=filled fillcolor=olivedrab2] //rankdir=TB subgraph Rows{ rankdir=TB A[label="A"] B[label="B"] C[labe

我需要用Graphviz创建垂直和水平标题,但我不知道如何使两个子图具有不同的方向。我试过使用rankdir,但显然它不适用于子图。我不知道如何进行。谢谢你的帮助

digraph Table{
    node[shape=box style=filled fillcolor=olivedrab2]
    //rankdir=TB
    subgraph Rows{
     rankdir=TB
     A[label="A"]
     B[label="B"]
     C[label="C"]
     D[label="D"]
     E[label="E"]
     F[label="F"]       
     A->B
     B->A
     B->C
     C->B
     C->D
     D->C
     D->E
     E->D
     E->F
     F->E
     {rank=same A B C D E F}
 }
subgraph Column{
    rankdir=LR
    M[label="M"]
    N[label="N"]
    O[label="O"]
    P[label="P"]
    Q[label="Q"]
    R[label="R"]        
    M->N
    //N->M
    N->O
    //O->N
    O->P
    //P->O
    P->Q
    //Q->P
    Q->R
    //R->Q
    {rank=same M N O P Q R}
  }
 }

你几乎把一切都做对了。只需删除{rank=same mno P Q R}行

你是对的,只适用于整个图,它不会单独适用于子图。但您可以使用以下方法控制节点的位置:

=子图的相同属性 强制子图中提到的所有节点处于同一级别

=边的假属性 它允许您连接两个节点,但不会通过此连接影响它们的位置