Блог

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

09.05.11   |   графики,
+7 (9)

Довольно часто в проектах, необходимо строить графики различной сложности. Не так давно, снова представилась возможность решить эту задачу.

Обзор не претендует на полноту, это всего лишь мое виденье ситуации, так же он рассчитан на новичков. За гранью осталось еще много библиотек и фреймворков.

Библиотеки и фреймворки, которые предоставляют возможность для построения графиков, условно можно поделить по следующим способам реализации:

В свою очередь, все они делятся на: серверные, клиентские и сервисы.

  • К серверным относятся: jpgraph, ezcomponents, pChart.
    Всю работу по обработке данных и формированию графиков берет на себя сервер.
    На выходе получаем картинку либо флэшку.
  • К клиентским относятся: jqPlot, Sencha(ExtJs), Dojo, YUI, amCharts, Open Flash Chart 2.
    Всю работу по обработке данных и формирования графиков берет на себя клиент.
    На выходе получаем флэшку либо canvas.
  • К сервисам у нас относится только Google Chart.
    Всю работу по обработке данных и формированию графиков берет на себя сторонний сервис, возвращая нам уже готовый результат.


Серверные

Плюсы:

  • Легкая возможность изменения исходного кода.
  • Богатый функционал и гибкая возможность настройки.
  • Легко добавить кэширование или отложенное формирование графиков.

Минусы:

  • Нагрузка ложится на сервер, при большом кол-ве графиков и слабом сервере придется искать другие варианты.


Клиентские

Плюсы:

  • Всю работу выполняет клиент, что снимает нагрузку с сервера.
  • Красивый внешний вид графиков.
  • Конфигурация и настройка с помощью JavaScript.

Минусы:

  • При построении сложных графиков может не хватить функционала и параметров конфигурирования. Связано с молодостью существующих решений.
  • Сложность изменения кода. Особенно если это flash, так как не все знают flash и далеко не все хорошо владеют JavaScript-ом.
  • Нагрузка ложится на клиента.


Сервисы

Плюсы:

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

Минусы:

  • При построении сложных графиков может не хватить функционала и параметров конфигурирования. Связано с молодостью существующих решений.
  • Нет возможности повлиять на исходный код.
  • Сервис может быть перегружен и не доступен для взаимодействия с ним.
  • Ограничения на кол-во обращений.


Кратко о библиотеках

  • jpgraph - очень мощная библиотека. Много примеров и полная документация + API. Ее возможности и гибкость настроек впечатляют. Но внешний вид графиков не на высоте. Для специфичных графиков придется купить лицензию. Удручает, что разработчики сконцентрировались на развитии Pro версии, но надеюсь, и Free версии уделят внимание.
  • ezcomponents - работа с графиками является одной из возможностей данного фреймворка. Хорошая документация и много примеров. Основной плюс - это возможность получить на выходе, как картинку, так и флэшку, что позволяет сделать графики очень красивыми. Легко интегрируется в Zend Framework благодаря автозагрузчику. Из минусов - это относительная молодость, что сказывается на функционале и гибкости настроек. К сожалению фреймворк видимо забросили, последний релиз был в марте 2010.
  • pChart - спасибо MasKarAl за комент. Фреймворк активно развивается, красивые графики, хорошая документация и наличие примеров. Обязательно попробую использовать в одном из проектов.
  • jqPlot - очень интересное решение. Является плагином к Jquery, возможности впечатляют. С документацией и примерами все ок. На выходе выдает canvas, для IE хак от гугла. Из минусов - это относительная молодость, что сказывается на функционале и гибкости настроек.
  • Sencha(ExtJs) - фреймворк как всегда продолжает радовать и поражать своим функционалом и красотой. Работа с графиками является одной из возможностей. И хотя компонент очень молодой, его функционал впечатляет. Примеры и API на уровне.
  • Dojo - работа с графиками является одной из возможностей фреймворка. Примеры и документация впечатляют своей скудностью. Надеюсь, в дальнейшем все изменится.
  • YUI - работа с графиками является одной из возможностей фреймворка. Довольно неплохая документация. Есть примеры, описывающие все возможности. На выходе флэшка, т.е. графики красивые. В плане возможностей и настроек, все на уровне.
  • amCharts - полностью на флэше. Графики впечатляют своей красотой. Довольно много примеров и нормальная документация. Но, либо в графиках будет ссылка на сайт создателей, либо покупка лицензии.
  • Open Flash Chart 2 - довольно интересная библиотека, сделанная на флэше. Не плохая документация, есть много примеров с кодом. Но графики не дотягивают до красоты amCharts. Последнее обновления было в 2009 году. Продукт скорее всего не развивается.
  • Google Chart - есть примеры и дока, проект активно развивается. Но возможностей пока маловато.


Вывод

Я отдаю свое предпочтение:

  • Из серверных: ezcomponents (люблю красивые графики).
  • Из клиентских: (jqPlot или Sencha(ExtJs)) или amCharts.
  • Из сервисных (тут выбор не большой):Google Chart.

Предыдущая статья

13.05.11   |   MasKarAl
Уточнения: "pChart - проект явно не развивается, последний релиз был в 2008 году" - не там смотрели. http://www.pchart.net/download - вот тут 28 марта 2011. "ezcomponents - ....компонент активно развивается" - последние новости за 2009 год. "jpgraph - очень мощная библиотека, активно развивается" - последний релиз 2010-10-07 (http://jpgraph.net/download/) Поэтому самым свежим из них следует считать pChart.
25.05.11   |   IgorN
Спасибо за коменты, обновлю инфу.

Оставить комментарий

Имя*
E-mail* (не публикуется)
Текст сообщения*
Код*