Уменьшение размера (как в области) графа, генерируемого graphviz - PullRequest
59 голосов
/ 07 августа 2010

Есть ли у кого-нибудь общие советы по уменьшению размера графа, генерируемого graphviz (размер как в области, а не как размер файла).

У меня довольно большой граф (700 узлов).Я установил меньший размер шрифта для каждого узла, но, похоже, он только уменьшает размер шрифта, а не фактический размер узла.Существуют ли какие-либо атрибуты для уменьшения общего количества пустого пространства на графике?Спасибо!

1 Ответ

93 голосов
/ 07 августа 2010

По моему опыту, используя graphviz для рендеринга графиков такого размера (~ 700 узлов), минимальная корректировка методом проб и ошибок для этой комбинации настроек атрибута - некоторые структурные, некоторые чисто эстетические - для всех трех объектов (график,узлы и ребра) должны делать то, что вы хотите:

уменьшить минимальное расстояние между узлами через 'nodesep';например, узлов [nodesep = 0,75] ;это сделает ваш график «слишком компактным».( nodesep и ranksep , вероятно, влияют на то, как точка рисует график, больше, чем любой другой настраиваемый параметр)

уменьшают минимальное расстояние между узлами разных рангов , например, узлов [ranksep = 0,75] ;«ranksep» устанавливает минимальное расстояние между узлами разных рангов - это существенно повлияет на макет вашего графа, если ваш граф состоит из множества рангов

увеличение веса ребер , например, кромка [вес = 1,2] * * 1 022;это сделает края более короткими, в свою очередь, делая весь граф более компактным

, удаляя границы узлов и заполняя узлы , например, node [color = none;shape = обычный текст] , особенно для узлов овальной формы, значительная часть общего пространства узлов «не используется» (т. е. не используется для отображения метки узла);площадь каждого узла теперь сокращается до его текста

, явно устанавливающего размер шрифта для узлов (границы узлов увеличиваются так, что они окружают текст узла, что означает, что размер шрифтаи объем текста для данного узла оказывает существенное влияние на его размер);[fontsize = 11] должен быть достаточно большим, чтобы быть разборчивым, но также уменьшать «загроможденный» внешний вид (размер по умолчанию - 14)

использовать разные цвета для узлов и ребер - это будетсделать ваш график легче для чтения;например, установите цвет шрифта узла text для синего цвета, а цвет шрифта края - «серого», чтобы помочь глазу различить два набора структур графа.Это будет иметь большее значение, чем вы могли бы подумать.

явно указать общий размер графика , например, graph [size = "7.75,10.25"] (гарантирует, чтоваш график помещается на странице размером 8,5 x 11 и занимает все пространство)

...