GraphViz - 当主图从左到右时,如何让子图从上到下?

时间:2017-04-08 02:22:42

标签: r graphviz diagrammer

我有LR方向的图表

digraph {
  rankdir=LR;
  node [shape=box]
  x1;x2;x3;y1;y2;y3;y4;y5;y6;y7;y8;
  node [shape=oval]
  ind60;dem60;dem65;
  {x1,x2,x3} -> ind60 
  dem65->{y5,y6,y7,y8} 

  subgraph cluster_0{
  rankdir=TB 

  {y1,y2,y3,y4} -> dem60[constraint=false]

  }
  ind60->dem60 ind60->dem65 dem60->dem65
}

结果如下: image1

我想要TB方向的子图。我怎样才能做到这一点?

subgraph

1 个答案:

答案 0 :(得分:1)

根据文档,rankdir仅适用于不适用于子图的图形。

您可以通过添加一些隐形边和类似

的节点的脚手架来解决这个问题
digraph {
  rankdir=LR;
  node [shape=box]
  x1;x2;x3;y1;y2;y3;y4;y5;y6;y7;y8;
  node [shape=oval]
  ind60;dem60;dem65;
  {x1,x2,x3} -> ind60 
  dem65->{y5,y6,y7,y8} 

  subgraph cluster_0{

      y2a[shape=point color=none]
      y1->y2->y2a->y3->y4[color=none weight=1000]
      {y1 y2}->dem60
      {rank=same y2a->dem60[color=none]}
      {y3 y4}->dem60

  }
  {rank=same ya[shape=point color=none] x1 x2 x3}
  {rank=same yb[shape=point color=none] y5 y6 y7 y8}
  ya->y1[color=none] y4->yb[color=none]
  ind60->dem60 ind60->dem65 dem60->dem65
}

enter image description here