Библиотека для визуализации ориентированных графиков (похожая на graphviz) в Google App Engine - PullRequest
18 голосов
/ 15 февраля 2010

Я ищу библиотеку Java или Python, которая может отображать графики на языке Dot в виде файла изображения. Проблема в том, что мне нужна библиотека, которую я могу использовать в Google App Engine. В основном я ищу библиотеку, которая может преобразовать текстовое описание ориентированного графа в изображение графа.

Например:

Скрыть этот крайний список:

[A,B]
[B,C]
[A,C]
[C,D]

На это изображение:

example image

Я использовал Graphviz для этого примера, но я знаю, что я не могу использовать его с Google App Engine.

Ответы [ 4 ]

18 голосов
/ 19 февраля 2010

Canviz - это то, что вы ищете: это библиотека JavaScript для рисования графиков Graphviz на холсте веб-браузера. Работает с большинством браузеров .

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

  • Серверу нужно только, чтобы Graphviz генерировал текст xdot; это быстрее, чем создание растровых изображений.
  • Только текст xdot должен быть передан в браузер; это меньше, чем двоичные данные изображения, и, если браузер поддерживает это (что большинство делает), текст может быть сжат gzip или bzip2.
  • Веб-браузер выполняет рисование, а не сервер; это снижает нагрузку на сервер.
  • Пользователь может изменить размер графика без необходимости подключения к серверу; это быстрее, чем сервер рисует и отправляет график в другом размере.

Чтобы увидеть это в действии, посмотрите здесь .

12 голосов
/ 02 июля 2010

Google Charts API теперь экспериментально поддерживает GraphViz . (Обратите внимание, что весь проект Image Charts официально устарел.)

0 голосов
/ 17 февраля 2010

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

У них есть несколько примеров приложений библиотеки, таких как График зависимостей .

0 голосов
/ 15 февраля 2010

Я не думаю, что есть такая чистая библиотека Python, лучшее, что вы можете сделать, это использовать NetworkX , она может рисовать с использованием matplotlib или pygraphviz. Может быть, вы можете изменить код matplotlib для Networkx, чтобы рисовать на стороне сервера, здесь - это код

Другая проблема заключается в том, что движок приложений Google не имеет API для рисования, но вы можете просто использовать SVG для создания таких графиков или, может быть, API Google Charts уже что-то там есть.

...