Макет подграфов Graphviz

#graphviz #dot

#graphviz #точка

Вопрос:

У меня есть следующий график:

 digraph G {
    rankdir=TB
    subgraph cluster_1 {
      label = "cluster1"
      1; 2; 3; 4; 5; 6; 7; 8; 9; 10;
    }
    subgraph cluster_2 {
      label = "cluster2"
      11; 12; 13; 14; 15;
    }
    subgraph cluster_3 {
      label = "cluster3"
      16; 17; 18; 19; 20; 21;
    }
  7 -> {10, 3, 4}
  10 -> 9
  4 -> {1, 6, 5, 2}
  4 -> 13
  8 -> {3, 4}
  13 -> {11, 12}
  11 -> {16, 14, 15}
  16 -> {17, 19, 20, 21, 18}
}
 

Результат, который я вижу,: введите описание изображения здесь

Как я могу разместить все кластеры строго вертикально?

Ответ №1:

К сожалению, не существует единого атрибута для достижения того, чего вы хотите. Но если вы добавите эти 3 строки к своему графику:

   edge [style=invis]
  {6 1} -> 13
  {14 15} ->16
 

Вы получаете это:
введите описание изображения здесь

Комментарии:

1. Спасибо. Но это не решение, удобное для автоматизации. Он также плохо работает с более длинными именами узлов.