Почему графвизия рисует C справа от B? - PullRequest
1 голос
/ 14 марта 2010

Почему на графике рисует C справа от B? Я хочу, чтобы это выглядело как

A
B E
C

вместо.

digraph  {
    compound=true
    subgraph cluster_1 { a -> b }
    b -> c
    {rank=same b -> e  }
}

альтернативный текст http://grab.by/33m4

Ответы [ 2 ]

2 голосов
/ 16 марта 2010

Я не уверен, что вы можете делать то, что ищете.

Когда точка выводит данный график, она рассматривает cluster_1 как единый объект для ранжирования.Итак, если хотите, cluster_1 имеет ранг 0. Тогда, поскольку вы говорите, что {rank = same b, e}, e также имеет ранг 0. Когда точка рисует c, c будет иметь более высокий ранг - ранг 1 - поэтому она будет отрисовананиже эл.Поскольку в этой точке ему не нужно беспокоиться о пространстве на оси x, он рисует букву c прямо под буквой е.

Если вы хотите, чтобы узел c определенно отображался ниже всего остального, вы можете добавить

{ rank=sink c }

, который ... выглядит не так хорошо, как то, к чему вы стремитесь.

2 голосов
/ 14 марта 2010

Потому что это увеличило бы общую площадь графа, а это то, что graphviz пытается минимизировать. Вы можете попробовать использовать различные утилиты компоновки в пакетах, такие как lefty или neato, чтобы увидеть, получите ли вы лучшие результаты.

...