Как получить горизонтальные ребра между узлами двух или более кластеров? - PullRequest
0 голосов
/ 29 сентября 2011

У меня есть кластеры 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 Ответ

3 голосов
/ 29 сентября 2011

Для этого конкретного графика вы можете использовать

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

...