2010-06-30 2 views
5

Выполняя разработку программного обеспечения, я периодически сталкиваюсь с необходимостью рисовать некоторые графики для собственного использования. Иногда они иллюстрируют отношения в БД, иногда они иллюстрируют отношения файлов кода или классов, иногда бывают другие объекты ... Во всяком случае, основная потребность такая же - у меня есть набор узлов & ребер, которые мне бы хотелось аккуратно выкладывать, добавлять некоторые информативные цвета/тексты/стили и, при необходимости, распечатывать их в конце (при необходимости, на нескольких страницах).Какие хорошие графические макеты, инструменты для редактирования и рисования есть?

Есть ли инструмент, который позволил бы мне сделать это легко? Возможности, которые я ожидал бы:

  • Импортировать базовую информацию о узле/крае из файла (необработанные данные, которые я извлек из БД/кода/независимо);
  • Автоматическая компоновка некоторых или всех узлов на графике;
  • Позволяет вручную настраивать места размещения узлов и краев;
    • Функции манипуляции с группами узлов (релейный выход, поворот, масштаб) также были бы очень приятными;
  • Умение манипулировать визуальными аспектами изображения - менять линии, цвета и шрифты; добавлять произвольные тексты и изображения (возможно, прикрепляя их к узлам/ребрам);
  • Возможность изменения содержимого узла (иногда мне нужен простой текст, иногда это небольшая таблица, иногда это маркированный список и т. Д.)
  • Сохранение/загрузка/печать (в том числе на несколько страниц с перекрывающимися областями для склеивания вместе)/экспорт в изображение (как векторный, так и растровый с сглаживанием).

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

ответ

3

Graphviz является давней популярной. Мне очень нравится механизм компоновки yEd, который я подаю GML данных (но он поддерживает другие форматы).

+1

Хороший ответ и вопрос, это действительно полезно ... Мне очень нравится макет второго, слишком красивый! –

+0

Я просто попробовал их на небольшом графике зависимостей PHP-файлов (в какой файл входит файл). Было что-то вроде 130 файлов (из которых половина была независимой) и вокруг того же количества зависимостей. Graphviz практически выровнял их все, создавая чрезвычайно широкий/высокий график. yEd было немного лучше, но все равно даже не приблизилось к чему-либо полезному. Я бы ожидал чего-то лучшего. –

+1

Я думаю, что yEd имеет разные типы макета, может быть, попробуйте несколько? – Mau

1

Вы можете использовать Cytoscape, это инструмент визуализации графа. Мне нравится вынужденная направленность.

1

Я нахожу Gephi очень хорошо, в основном для двух задач:

  1. Сидя граф, то есть Hidding некоторые части, движущиеся узлы, пытаясь понять его свойства, играя с ним.
  2. Предоставление его для экспорта его для презентации или статьи?

Есть хорошие алгоритмы компоновки, включенные по умолчанию, и вы можете легко установить плагины из этого инструмента.

И если ваша цель - получить информативное и читаемое представление вашего графика, вы можете рассмотреть возможность использования участков для улья. Описание, примеры и инструменты доступны от this page. Основная идея состоит в том, чтобы использовать детерминированный метод (против оппозиционных макетов) для размещения узлов на основе нескольких атрибутов или топологических мер.Полученное представление позволяет эффективно сравнивать разные графики или даже один и тот же граф, рассматриваемый с разных точек зрения.

Смежные вопросы