Как вывести огромную диаграмму отношений зависимости Plone с Graphviz? - PullRequest
5 голосов
/ 20 февраля 2010

Я написал инструмент для поиска зависимостей за проектом Python. Это обжорство . Я запускаю его на Plone, результат впечатляет. Я вывожу диаграмму с помощью Networkx, и она выглядит так:

Dependency diagram of Plone, output by Networkx
(источник: googlecode.com )

(Ну и дела! Похоже на World of Goo!)

Беспорядок! Я не занимался версткой с Networkx. Вот почему это беспорядок. Инструмент может выводить файл формата Graphviz. Я попытался сделать диаграмму с помощью точечной команды. Я использую команду так:

dot -Kdot -Tpng -oplone plone.dot

Я получил огромное изображение после долгого запуска, но результат кажется неправильным. Я не вижу ничего на итоговом изображении. Похоже на белую бумагу, на ней ничего нет. В чем дело? Диаграмма слишком велика для визуализации? Что я должен сделать для рендеринга такой огромной сложной диаграммы?

Я могу получить правильный результат из другой маленькой диаграммы, такой как эта: Dependency diagram of sprox
(источник: googlecode.com )

Даже гораздо большую диаграмму можно отобразить правильно, давайте посмотрим на диаграмму TurboGears2

Я думаю, что было бы забавно видеть отношения зависимости такого монстрового проекта, как Plone. Также это полезно для исследования. К сожалению, я не могу правильно вывести диаграмму. Холод, кто-нибудь мне поможет? Спасибо.

Вот файл формата Graphviz Plone: plone.dot

Ответы [ 2 ]

2 голосов
/ 21 февраля 2010

Команда dot plone.dot -Tsvg > plone.svg отображает эту масштабируемую векторную графику:

альтернативный текст http://dl.dropbox.com/u/138632/plone.svg

Я могу открыть файл .svg отлично в Inkscape и увеличить до 100%.

1 голос
/ 20 февраля 2010

Если вы можете создать изображение: Graphviz имеет тенденцию создавать огромные файлы. Увеличить.

Для меня graphviz регулярно вылетает на ваш файл. Кажется, что максимальная скорость составляет 32 кПикселя на сторону, и ваш файл будет больше, что приведет к целочисленному переполнению.

Попробуйте разбить файл на несколько подграфов (Дополнительные точки для использования алгоритмов графа для нахождения хороших точек разделения).

Обновление:

Я набросал быстрый скрипт для файлов с разделенными точками . Это не идеально, но работает разумно.

...