Подтвердить что ты не робот

Оптимизированный графический чертеж для Интернета

Увидев несколько предложений для графиков, мне интересно, какой оптимальный для моей проблемы.

Я хочу отобразить ориентированный граф для сервлета/изображения, отображаемого в браузере. Должна быть какая-то оптимизация позиции. Никакая зависимость от Swing не была бы предпочтительной. Алгоритмы не важны, так как структура графика определяется бизнес-логикой. Было бы желательно иметь возможность добавлять метки к краям. было бы оптимальным, если бы я мог служить этим как png/svg.

Какую библиотеку/услугу вы бы порекомендовали?

разъяснения:

1) Вопрос о Graphs - как Направленный ациклический график - NOT - "Графики" .

2) flot, Google Charts - не может строить графики, только графики или я что-то пропустил?

3) нет, мне не нужна интерактивность

4) graphviz было бы неплохо, но библиотека java grappa довольно устарела и построена на swing/awt. в то время как теоретически возможно визуализировать качели для изображений, это не было бы моим любимым способом на сервере-приложении.

5) было бы хорошо использовать онлайн-службу, где изображения не размещаются локально.

edit: добавлены ссылки на Википедию для уточнения термина графика/графика

4b9b3361

Ответ 1

Как и ожидания недель, чтобы услышать о Magic Framework, которая решит все ваши проблемы в одной строке кода, есть и другая возможность просто написать код, чтобы сделать именно то, что вы хотите... (I "Не говорю, что это 10 минут работы, но это, вероятно, один или два дня, и вы отправили свой вопрос в течение двух недель назад...)

Есть ли у вас взгляд, например, на запись в Wikipedia на Силовые алгоритмы - у него есть псевдокод и несколько ссылок это может быть полезно.

Я предполагаю, что это алгоритм компоновки, а не вопрос создания BufferedImage, рисования его графического контекста, его PNG-кодирования и отправки его в сокет. Мне действительно не нужна фреймворк для этого бита. Я не думаю.

Ответ 2

Взгляните на graphviz

Ответ 3

yFiles может быть полезно для этого.

Ответ 4

Как насчет точечного компонента Graphviz? Он создает графики (не диаграммы), выходы в PNG и SVG и поддерживает маркировку краев. Вы можете выложить текст, чтобы создать нужный образ, и вернуть тег img, который ссылается на него. Кроме того, вы можете вернуть тег img, который ссылается на URL-адрес, который будет генерировать требуемый граф (или получить кешированную копию). Здесь точка:

http://www.graphviz.org/pdf/dotguide.pdf

Вы также можете взглянуть на WebDot, который, по-видимому, предназначен для этой цели:

http://www.graphviz.org/webdot/

Ответ 5

Попробуйте aiSee. Он используется всеми видами веб-приложений для data mining, статический анализ программ, матричная визуализация, сетевой анализ и еще много чего. Он также используется некоторыми MediaWikis в качестве своего графического макета.

У них есть огромная база данных примеры графиков на aiSee.com. Проверьте это. Он поддерживает метки границ, экспортирует в сопоставленные SVG и HTML и не зависит от Swing.

Ответ 6

Для serveride, попробуйте JUNG, вы можете запустить его против Batik и создавать красивые файлы SVG или PNG. JUNG имеет приятный дизайн и очень мощные алгоритмы компоновки...

Кроме того, поскольку вы упоминаете, что "было бы хорошо использовать онлайн-сервис", graphviz предоставляет услугу webdot для рендеринга графиков.

На этой линии есть и другие... например. http://graph.gafol.net/ (кажется, не работает)

Клиентская сторона:

  • Попробуйте http://arborjs.org/ для минимальной (ish) библиотеки, посвященной макету, используйте это, вы предпочитаете ваши собственные процедуры рендеринга (div, canvas, svg, paper.js, обработка... и т.д.).

  • Мне также нравится http://sigmajs.org/ для более полного подхода, встроенной поддержки касания, плагинов, форматов файлов и т.д.

Ответ 7

Мы создаем mxGraph для таких требований. Мы действительно выпустили его в 2006 году, но потребовалось время, чтобы заметить этот вопрос...

Ответ 8

Интересно, что проект Eclipse имеет компонент/структуру SWT/JFace, способный отображать и генерировать (импортировать/экспортировать) формат Graphviz DOT в чистой Java:

ZEST (домашняя страница и ссылки для скачивания)

Для примеров использования см. http://wiki.eclipse.org/Graphviz_DOT_as_a_DSL_for_Zest.

Несмотря на то, что ZEST рекламируется как плагин Eclipse, кажется, что API-интерфейс DOT-манипуляции может использоваться как автономный, так и внешний для установки Eclipse.

Приветствия

Рич

Ответ 9

Вы можете попробовать sigma.js: http://sigmajs.org/

Это легкая библиотека с открытым исходным кодом в Javascript для отображения больших графиков в Интернете.

Ответ 10

JPGD является парсером Graphviz в Java. Он немного заброшен, но код приятный и понятный, и если вы найдете ошибки, я уверен, что автор согласился бы с внесенными исправлениями.

Хотя он рекламируется как синтаксический анализатор, он также является генератором. Вы можете создавать графики как коллекции объектов Node и Edge, а затем получать .dot с помощью Graph.toString(). Получение этого как графика было бы простой оболочкой для исполняемого файла Graphviz dot.

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

digraph myGraph {

... с последующим определением края на каждый край

node1 -> node2 ;

..., за которым следует закрывающая скобка

}

Ответ 11

поэтому я взял alook на всех приведенных ответах и ​​ссылках, он выглядит как Prefuse/Flare будет оптимальным выбором. они имеют очень привлекательную визуализацию, плюс они встроены в поддержку графиков.

Ответ 12

Возможно, зайдите Google Chart?

Ответ 13

Вы можете использовать SVG в сочетании с Batik. Я использовал это несколько раз для отображения графики. Батик с Java 1.5 очень быстрый. С помощью этого решения вы можете запрограммировать свой график на Java без зависимости от Swing. Вы можете добавлять метки, где хотите, размещать их как сервлет и отображать их как png или svg.

Вы можете создавать графики в SVG (это XML-документ).
Вы используете Batik, чтобы преобразовать SVG-документ в PNG/JPG-изображение.
Вы можете использовать сервлет, чтобы передать это изображение обратно в браузер.

В java вы создаете документ SVG (= XML). Образцы для графиков SVG можно найти здесь: Направленный график и здесь: Простой ориентированный график

Ответ 14

Смотрите этот вопрос, особенно Стефан, ответьте на вопрос о префьюзе. Я читал, что вам не нужна интерактивность, но prefuse все еще может быть полезна.

Ответ 16

JFreeChart может быть так, как вы хотите, но вы делаете различие между диаграммами и графиками. Может быть, вы можете объяснить, что вы подразумеваете под этим. Я обычно использовал эти термины синонимом.:)

JFreeChart имеет хорошие диаграммы разброса, бара и линии, а также такие веселые, как Pie and Dial, поэтому, возможно, это сработает для вас.