如何在两个或多个集群的节点之间获得水平边?

时间:2011-09-29 14:59:05

标签: graphviz

我必须集群A和B,每个节点有3个节点。我需要以二分方式连接集群之间的节点。

此代码:

digraph G {

subgraph cluster_A {
    style=filled;
    color=lightgrey;
    edge [style=invisible,dir=none];
    node [style=filled,color=white];
    a1 -> a2 -> a3;
}

subgraph cluster_B {
    style=filled;
    color=lightgrey;
    edge [style=invisible,dir=none];
    node [style=filled,color=white];
    b1 -> b2 -> b3;
}
a1 -> b1;
a2 -> b2;
a3 -> b3;
}

几乎完全符合我的要求,但是群集B与群集A不在同一级别。它在A之下偏移了一些数量。

如何防止此偏移并使两个群集处于同一级别?

1 个答案:

答案 0 :(得分:3)

对于此特定图表,您可以使用

edge[constraint=false];

没有节点之间的边缘影响布局:

digraph G {
  subgraph cluster_A {
      style=filled;
      color=lightgrey;
      edge [style=invisible,dir=none];
      node [style=filled,color=white];
      a1 -> a2 -> a3;
  }

  subgraph cluster_B {
      style=filled;
      color=lightgrey;
      edge [style=invisible,dir=none];
      node [style=filled,color=white];
      b1 -> b2 -> b3;
  }

  edge[constraint=false];
  a1 -> b1;
  a2 -> b2;
  a3 -> b3;
}

graphviz output