FDSg
FDSg

Reputation: 391

How to change Graphviz subgraph rank?

I want subgraph clusterCG to have same rank as 3 (clusterCG schould not contain 3)

digraph G{
 rankdir = LR;
 node [shape = none]

 1->2->3->4[arrowhead=none]

 node [shape = ellipse]

 A->A2->A3;

 subgraph clusterCG{
  shape = rect;
  rank=same;
  A2;
  B;
  C;
  color=blue;
  label="C";
 }

 { rank=same; 1; A;}
 { rank=same; 3; CG;}
 { rank=same; 4; A3;}
}

enter image description here

CG is generated as independent node with rank 3.

I want the subgraph clusterCG to have rank 3.

Upvotes: 18

Views: 25595

Answers (2)

Deogtae Kim
Deogtae Kim

Reputation: 181

use different rank algorithm with "newrank=true"

 digraph G {
 newrank=true
 rankdir = LR;
 node [shape = none]

 1->2->3->4[arrowhead=none]

 node [shape = ellipse]

 A->A2->A3;

 subgraph clusterCG{
  shape = rect;
  rank=same;

  A2;
  B;
  C;
  color=blue;
  label="C";
 }

 { rank=same; 1; A;}
 { rank=same; 3; A2}
 { rank=same; 4; A3;}
}

Upvotes: 18

FDSg
FDSg

Reputation: 391

Maybe not the best solution, but it seems that zero size nodes is the only thing that works

digraph G{
 rankdir = LR;
 node [shape = none]

1->2->3->4[arrowhead=none]

node [shape = ellipse]
ACG[shape = none,label="",width=0, height=0];

CG->A2 [style=invis,constraint=false];

A->ACG[arrowhead=none];
ACG->A2->A3;

 subgraph clusterCG{
  shape = rect;
  rank=same;
  A2;
  B;
  C;
  color=blue;
  label="C";
 }

 { rank=same; 1; A;}
 { rank=same; 2; ACG;}
 { rank=same; 4; A3;}

}

enter image description here

Upvotes: 11

Related Questions