子图在放入集群时改变了对齐方式

时间:2017-08-24 14:21:12

标签: graphviz

我想要的图表包含一个顶行;最右边的节点(T3)然后指向A. A到E在垂直列中,C和F垂直对齐,H,I和J垂直对齐。另外,C,F和H水平对齐,E,G和J水平对齐。

当我在已经存在的子图之前添加子图cluster_0时,即子图cluster_0 {rank = same; A - > B - > C-> D-> Ë; },子图水平对齐......

如何在不发生这种情况的情况下引入群集?此外,从T3到A的边缘几乎是直的。我会很好,如果它直接向下,向右倾斜到左边然后向右倾斜到A.

这是有效的:

digraph G { rankdir = LR ranksep = 1.2 nodesep = 0.5
  T1 -> T2 -> T3;
  { rank=same; A -> B -> C -> D -> E;  }
  C -> F
  { rank=same F -> G[style=invis] }
  E->G
  { rankdir=LR rank=same H -> I -> J}
  F -> H [style=dotted]
  G -> J [style=invis]
  edge [constraint=false]
  T3->A
}

这是不起作用的

digraph G { rankdir = LR ranksep = 1.2 nodesep = 0.5
  T1 -> T2 -> T3;
  subgraph cluster_0 { rank=same; A -> B -> C -> D -> E;  }
  C -> F
  subgraph cluster_1 { rank=same F -> G[style=invis] }
  E->G
  subgraph cluster_2 { rankdir=LR rank=same H -> I -> J}
  F -> H [style=dotted]
  G -> J [style=invis]
  edge [constraint=false]
  T3->A
}

1 个答案:

答案 0 :(得分:0)

这是我能得到的尽可能接近,但群集肯定会引入一些差异。而且几乎笔直的"我用splines=ortho更正了一行。我用一条看不见的边缘将ABCDE子图移到了T1。

digraph G { rankdir=TB ranksep = 0.5 nodesep = 0.5 splines=ortho
  {rank=same T1 -> T2 -> T3;}

T1->A [style=invis]

  subgraph cluster_0 {rank=min  A -> B -> C -> D -> E;  }
  C -> F
  subgraph cluster_1 { rank=same F -> G[style=invis] }
  E->G
  subgraph cluster_2 { rankdir=LR rank=same H -> I -> J}
  F -> H [style=dotted]
  G -> J [style=invis]
  edge [constraint=false]
  T3->A
}