Делаем граф понятным для человека / читаемым (500 узлов, 1600 ребер) - PullRequest
1 голос
/ 06 декабря 2011

Я решил выучить язык DOT, который выглядит фантастически. Я решил сделать проект для построения графика для построения RPM. Я сканирую все рецепты для создания пакетов RPM, а также добавляю информацию о необходимых исправлениях и импорте. В настоящее время мой график имеет менее 500 узлов и более 1600 ребер, и его размер должен быть стабильным +/- 50-100 узлов / ребер время от времени.

Вот что у меня сейчас:

Первые два более читабельны, чем последний.

подробности:

  • Пакеты в черных коробках.
  • Патчи в оранжевых рамках + оранжевые края.
  • Импорт в коробках с красными рамками + красные края.
  • Нет единого корневого узла пакета. Можно сказать, что существует несколько узлов (корневых) пакетов верхнего уровня, пакетов (узлов) 4-10 узлов, которые импортируют большинство пакетов.
  • Существуют автономные пакеты (узлы), а не зависимости и от них не зависит.
  • Патчи могут использоваться (главным образом) только одним узлом пакета.
  • Не все узлы пакетов имеют исправления. Я бы сказал, что меньшая часть узлов пакетов имеет их.
  • Импортируемые файлы могут быть включены в огромную часть узлов пакета (например, 1/3 всех узлов пакета).
  • У меня есть rankdir = "TB" (сверху вниз)
  • Я увеличил вес по краям (упаковка -> патч). Это должно означать, что узлы исправлений находятся ближе к узлу их пакета.
  • Было бы неплохо минимизировать количество ребер, накладывающих узлы. Это делает граф много нечитаемым.

Какие-либо предложения по конфигурации макета графа и использованию алгоритма в этом случае?

1 Ответ

0 голосов
/ 21 декабря 2011

Впечатляющий график!Я бы попробовал, что произойдет, если вы

  • дадите краям немного прозрачности
  • на самом деле сделаете их немного длиннее.Я знаю, что это делает график еще больше, но это может сделать его визуально более четким, и если вы собираетесь напечатать его, например, уменьшенный размер шрифта, с которым вы в конечном итоге столкнетесь, может быть компенсирован лучшей структурой.
  • заполнение узлов облегченной версией их границ.
  • делают узлы очень маленькими и дают им только порядковые номера.Затем создайте легенду, соответствующую цвету + индексному номеру фактическому содержаниюЭто может бросить вызов цели вашего графика, но все же, возможно, стоит попробовать.Для начала просто оставьте ярлыки и сделайте крошечные цветные кружочки.Не должно занять слишком много времени, и вы можете увидеть некоторые ранее невиданные структурные свойства.Если вы найдете что-нибудь полезное, вернитесь к как можно меньшему количеству информации об узле, пока не найдете хороший компромисс.

О, и мне никогда не удавалось удерживать GraphViz от построения краевпо узлам либо ...

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...