Как я могу оптимизировать ширину вывода GraphViz? - PullRequest
20 голосов
/ 19 июня 2011

Я делаю графики с огромным соотношением ширины: они имеют размер 51706 x 503 пикселей. Как я могу сказать GraphViz, чтобы оптимизировать ширину?

Примечание 1: график на самом деле представляет собой дерево, в котором каждый узел имеет много дочерних элементов. Вот образец .

Примечание 2: я думаю, что я использую точку:)

Примечание 3: Вот код Ruby

Ответы [ 3 ]

14 голосов
/ 22 июня 2011

В случае, если граф состоит из нескольких деревьев, которые не связаны, вы можете разделить их (как упоминалось в Graphviz: разбить плоский, но редко связанный граф на несколько строк? )

В зависимости от вашего конкретного графика, вы можете получить меньший график при использовании

ratio="compress"

(Вам нужно будет указать size)

Для подробной оптимизации на конкретном графике вы можете добавить rank атрибуты и распределить узлы вручную по различным разрядам.


Edit:

Существует инструмент graphviz, который называется unflatten , который, кажется, существует именно для этой цели:

unflatten - препроцессор для точки, который используется для улучшения аспекта соотношение графов, имеющих много листьев или отключенных узлов. Обычный макет для такого графика, как правило, очень широкий или высокий. unflatten вставляет невидимые края или корректирует minlen по краям, чтобы улучшить сжатие макета.

Никогда не было необходимости его использовать, но я думаю, что стоит попробовать.

3 голосов
/ 25 февраля 2015

У меня также была проблема, что neato держал много места между коробками. Наконец, я достиг разумного результата, используя следующие настройки графика:

overlap=prism, overlap_scaling=0.01, ratio=0.7

Особенно полезно тестировать различные значения для перекрытия и масштабирования. Быстрее всего использовать меньшие примеры (<50 узлов) и использовать gvedit.exe, чтобы увидеть эффекты. </p>

Мне потребовалось довольно много времени, чтобы определить эти настройки, которые описаны в http://www.graphviz.org/doc/info/attrs.html

2 голосов
/ 19 июня 2011

Вы можете попробовать сыграть с параметром ratio .

...