Graphviz: есть ли способ заставить узел на дно? - PullRequest
6 голосов
/ 18 сентября 2009

Я строю CFG (контекстно-свободную грамматику), и я хотел бы, чтобы выходной узел всегда был внизу графика Иногда это происходит естественно, иногда нет.

Пример:

digraph G {
  0;
  1;
  4;
  5;
  7;
  8;
  0 -> 4;
  5 -> 7;
  7 -> 8;
  7 -> 1;
  8 -> 5;
  4 -> 7;
}

Рисует (используя точку):

alt text

Узел 1 - мой выходной узел, я бы хотел, чтобы он был внизу. Предложения?

Ответы [ 2 ]

10 голосов
/ 19 сентября 2009

Использовать спецификацию ранга для подграфа. В этом случае раковина должна пройти внизу, а max - на том же уровне, что и 5:

digraph G {
  0;
  { rank = sink; 1; }
  5;
  4;
  7;
  8;
  0 -> 4;
  5 -> 7;
  7 -> 8;
  7 -> 1;
  8 -> 5;
  4 -> 7;
}
0 голосов
/ 18 сентября 2009

В DOT попробуйте опцию "-y"

-y          - Invert y coordinate in output
...