Библиотека диаграмм JavaScript

Может ли кто-нибудь порекомендовать конкретную библиотеку построения диаграмм JavaScript - в частности, ту, которая вообще не использует flash?


person Community    schedule 23.09.2008    source источник


Ответы (29)


Растет число решений с открытым исходным кодом и коммерческих решений для построения диаграмм на чистом JavaScript, не требующих Flash. В этом ответе я представлю только варианты с открытым исходным кодом.

Существует 2 основных класса решений JavaScript для графики, для которых не требуется Flash:

  • На основе холста, визуализируется в IE с использованием ExplorerCanvas, который, в свою очередь, полагается на VML.
  • SVG в стандартных браузерах, отображаемый как VML в IE

У обоих подходов есть свои плюсы и минусы, но для библиотеки диаграмм я бы порекомендовал второй, потому что он хорошо интегрирован с DOM, позволяет манипулировать элементами диаграмм с помощью DOM и, что наиболее важно, настраивать события DOM. Библиотеки диаграмм Canvas, напротив, должны изобретать колесо DOM для управления событиями. Поэтому, если вы не собираетесь строить статические графики без обработки событий, решения SVG / VML должны быть лучше.

Для решений SVG / VML есть много вариантов, в том числе:

Raphael - это очень активная, ухоженная и зрелая графическая библиотека с открытым исходным кодом и очень хорошей кросс-браузерной поддержкой, включая IE с 6 по 8, Firefox, Opera, Safari, Chrome и Konqueror. Raphael не зависит от какой-либо инфраструктуры JavaScript и поэтому может использоваться с Prototype, jQuery, Dojo, Mootools и т. Д.

Существует ряд графических библиотек, основанных на Рафаэле, включая (но не ограничиваясь ими):

  • gRaphael, расширение графической библиотеки Рафаэля
  • Ico с интуитивно понятным API, основанным на одном вызове функции для создания сложных диаграмм

Раскрытие информации: я разработчик одного из форков Ico на github.

person Community    schedule 25.01.2010
comment
Grafico и Ico - две несовместимые форки первоначального Ico Алекса Янга. Так что утверждать, что Ico превратилась в Grafico, неверно. Grafico - лишь одна из развилок. - person Jean Vincent; 27.12.2010
comment
Следует отметить, что Рафаэль, похоже, больше не поддерживается. Последняя фиксация произошла в июле 2010 года или около того. - person Alastair Pitts; 25.02.2011
comment
Просто скачала диаграммы Рафаэля, мне понравилось много, но нет документации, просто чтобы предупредить. - person Brandon Frohbieter; 14.03.2011
comment
@Alastair: Raphael теперь спонсируется и разрабатывается Sencha ... или так говорят :) - person Roy Tinker; 15.07.2011
comment
SVG не поддерживается в Android до версии Honeycomb. Если требуется возможность просматривать диаграммы на широком спектре текущих устройств Android, вам придется выбрать решение на основе Canvas. В этой статье о сенсорных диаграммах Sencha более подробно рассказывается о мобильных диаграммах. в общем, и почему Sencha Touch пошла по пути Canvas. - person Pallavi Anderson; 02.08.2011
comment
@B Seven, IE9 имеет отличную поддержку SVG, а Raphaël по умолчанию использует SVG в IE9. - person Jean Vincent; 03.08.2011
comment
@Pallavi, вы абсолютно правы, Android до Honeycomb - практически единственная платформа, которая не поддерживает ни VML, ни SVG, но поддерживает Canvas. Хотя, как указывает сам Google, на Androïd все еще можно использовать Firefox, но это далеко не идеально. Со временем эта проблема исчезнет (соты). К сожалению, это означает, что в настоящее время не существует 100% кроссбраузерного решения. - person Jean Vincent; 03.08.2011
comment
@JeanVincent +1 за хороший подробный ответ. Один момент, о котором я хотел бы упомянуть, заключается в том, что при выборе фреймворка мы также должны видеть, предоставляет ли конкретный фреймворк возможность экспорта диаграмм, графиков. Я думаю, что во многих случаях люди хотят экспортировать эту диаграмму как изображение, а затем использовать ту же диаграмму в своей презентации. Одним из примеров такого фреймворка является HighCharts. Хотелось бы узнать, есть ли другие альтернативы highcharts. - person Shekhar; 04.01.2012

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

Кроме того, ExtJS 4.0 представил отличный набор диаграмм - очень мощный , и предназначен для работы с оперативными данными.

person Community    schedule 23.09.2008
comment
Это та же библиотека, которую Джефф Далгас использовал для создания графа репутации здесь, в StackOverflow. Это действительно хороший комплект. - person Charles Roper; 02.10.2008
comment
Моя единственная реальная жалоба на flot заключается в том, что при рендеринге в IE он выглядит ужасно при любом уровне масштабирования, кроме 100% (т.е. все линии / блоки не масштабируются вместе - это определенно проблема для тех из нас, у кого есть дисплеи с высоким разрешением). - person Bittercoder; 03.02.2009
comment
Похоже, что флот-чарты выглядят лучше, чем многие другие, на которые я смотрел. Вот ссылка на 20 библиотек диаграмм JavaScript: javascript.open-libraries.com/utilities/chart/ - person B Seven; 20.05.2011
comment
Мне тоже нравится flot, раньше я уже много раз использовал его в различных веб-приложениях. - person fedmich; 23.08.2011
comment
Мне нравится flot в целом, но он хочет, чтобы все данные были числами, поэтому, если вы хотите построить что-то вроде продаж на клиента (по имени) или на продукт, это не сработает. - person Zachary K; 24.11.2011

Посетите http://www.highcharts.com!

Highcharts - это библиотека диаграмм, написанная на чистом JavaScript, предлагающая простой способ добавления интерактивных диаграмм на ваш веб-сайт или веб-приложение. Highcharts в настоящее время поддерживает типы линейных, сплайновых, площадных, линейных, столбчатых, линейных, круговых и точечных диаграмм.

person Community    schedule 01.12.2009
comment
Стоит отметить, что эта библиотека бесплатна для некоммерческого использования, но стоит денег для односайтовых и многосайтовых. Однако это кажется довольно разумной ценой. - person Nick Spacek; 18.05.2010
comment
Сначала это было бессовестной пробкой, но они выглядят ДЕЙСТВИТЕЛЬНО круто !! Хотя это не бесплатно для коммерческого использования, у меня нет информации о том, разумные цены или нет, но с первого взгляда они выглядят нормально! - person Trufa; 10.12.2010
comment
Это та же библиотека диаграмм, которая используется в CloudFlare.com, и выглядит она действительно великолепно. Я собирался использовать библиотеку диаграмм DevExpress, которая представляет собой ASP.NET и выполняет рендеринг и изображение на сервере, когда я наткнулся на библиотеку highcharts. Я сразу убедился, что это правильный путь. Когда я узнал, что CloudFlare, у которого есть одна из самых привлекательных панелей / аналитических панелей, которые я когда-либо видел, тоже использует его, меня продали! В настоящее время я экспериментирую с ним, и это сработало при моей первой попытке встроить диаграмму на мою веб-страницу ... так что это тоже кажется простым в использовании! - person Loudenvier; 04.08.2011
comment
Еще один голос за Highcharts. Я сейчас им пользуюсь, и это здорово. Поддерживает jQuery, Mootools и Prototype, его очень легко настроить и использовать. - person gnclmorais; 10.08.2011
comment
Сам Stackoverflow использует высокие диаграммы stackoverflow.com/users/22656/jon-skeet?tab=reputation - person Scott; 30.09.2011
comment
Еще один голос за Highcharts. Пользуюсь, и это здорово. Поддержка JQuery (с данными JSON) проста в настройке и использовании. - person Irvin Dominin; 21.11.2011
comment
Я думаю, что highcharts позволяет нам экспортировать диаграммы и графики как изображения. +1 за упоминание highcharts - person Shekhar; 04.01.2012

Возможно, это не совсем то, что вы ищете, но
Google Chart API довольно круто и легко использовать.

person Community    schedule 23.09.2008
comment
просто помните, Google Chart требует подключения к Интернету, а также имеет некоторые ограничения на количество разрешенных клиентских запросов. - person fedmich; 23.08.2011
comment
@ user102008: сейчас :) (Вы все еще можете получить доступ к старому API на основе изображений если хочешь) - person Spycho; 12.10.2011
comment
Google Chart API нельзя использовать в автономном режиме, что плохо для мобильной разработки. - person oldwizard; 27.02.2012
comment
Мне нужно сделать подсвечник горизонтального типа, кто-нибудь знает, возможно ли это с помощью API диаграммы Google? - person Tom Stickel; 04.04.2012

Есть еще одна библиотека javascript на основе SVG. Он называется Protovis и разработан Стэнфордской группой визуализации.

Это также позволяет создавать красивую интерактивную графику и визуализации.

http://vis.stanford.edu/protovis/ex/

Хотя это только для современных веб-браузеров

ОБНОВЛЕНИЕ: команда protovis перешла в другую библиотеку под названием d3.js (Data Driven Documents), как они сказали:

«Команда Protovis сейчас разрабатывает новую библиотеку визуализации, D3.js, с улучшенной поддержкой анимации и взаимодействия. D3 основывается на многих концепциях Protovis»

Новую библиотеку теперь можно найти в:

http://mbostock.github.com/d3/

ОБНОВЛЕНИЕ 2:

«Рикша» - это набор инструментов JavaScript для создания интерактивных графиков временных рядов. Основан на d3.js, что значительно упрощает работу с d3.js, хотя и немного менее мощный.

http://code.shutterstock.com/rickshaw/

person Community    schedule 16.02.2011
comment
Беглый взгляд, я не думаю, что D3 заменяет Protovis. Я бы сказал, что команда пошла дальше, потому что видела это более интересным и передовым. - person David J.; 02.08.2011

Недавно я искал библиотеку диаграмм javascript и оценил целую кучу, прежде чем, наконец, остановился на jqplot, который соответствует моим требованиям. очень хорошо. Как упоминалось в ответе Жана Винсента, вы действительно выбираете между решением на основе холста и svg.

На мой взгляд, основные плюсы и минусы заключаются в следующем. Решения на основе SVG, такие как Raphael (и его ответвления), отлично подходят, если вы хотите создавать высокодинамичные / интерактивные диаграммы. Или если ваши требования к диаграммам сильно выходят за рамки нормы (например, вы хотите создать какую-то гибридную диаграмму или придумали новую визуализацию, о которой еще никто не подумал). Обратной стороной является кривая обучения и объем кода, который вам придется написать. Вы не будете строить диаграммы за несколько минут, будьте готовы потратить немного времени на обучение, а затем написать большой объем кода для создания относительно простой диаграммы.

Если ваши требования к диаграммам достаточно стандартны, например вам нужны линейные или гистограммы или, возможно, круговая диаграмма или две с ограниченной интерактивностью, тогда стоит взглянуть на решения на основе холста. Практически не будет никакой кривой обучения, вы сможете получить базовые диаграммы в течение нескольких минут, вам не нужно будет писать много кода, несколько строк базового javascript / jquery будут всем, что вам нужно. Конечно, вы сможете создавать только определенные типы диаграмм, которые поддерживает библиотека, обычно ограниченные различными видами линий, столбцов, круговых диаграмм. Варианты интерактивности будут чрезвычайно ограничены, то есть не будут существовать для многих библиотек, хотя некоторые ограниченные эффекты наведения возможны с лучшими из них.

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

Подводя итог, простые и нужные диаграммы сейчас, а затем переходите к JQplot. Сложный / разный и не ограниченный во времени, тогда отправляйтесь с Рафаэлем и друзьями.

person Community    schedule 19.04.2011

jqPlot великолепен. Если ваши требования довольно "нормальные" и вы просто хотите нарисовать несколько диаграмм, вы, вероятно, не справляетесь с количеством вариантов построения диаграмм в js. Предполагая, что вы не хотите часами заниматься исследованиями, просто используйте jqPlot, поскольку это, вероятно, ваш лучший выбор. Он хорошо охватывает большинство случаев использования для большинства людей. Некоторые из альтернатив специализируются на определенном типе диаграмм или построены с учетом определенного варианта использования.

person Community    schedule 03.06.2010
comment
Я тоже так думаю после некоторых исследований. Прямо сейчас это похоже на одну из лучших доступных бесплатных библиотек диаграмм JS. - person jturcotte; 08.07.2010

В качестве позднего ответа попробуйте d3.js
http://mbostock.github.com/d3/

Это продолжение protovis.
Большая разница с flot заключается в количестве поддерживаемых функций.
Хотя flot может быть проще, d3.js определенно более мощный.

person Community    schedule 16.03.2012

Flotr - это еще одна, чистая библиотека диаграмм Javascript, основанная на Prototype и вдохновленная Флот

person Community    schedule 23.09.2008

Попробуйте PlotKit

person Community    schedule 23.09.2008

Я бы порекомендовал gRaphaël для построения диаграмм на чистом JavaScript вместе с библиотекой векторной графики на чистом JavaScript, на которой он построен (Raphaël).

В настоящее время gRaphaël поддерживает Firefox 3.0+, Safari 3.0+, Opera 9.5+ и Internet Explorer 6.0+.

person Community    schedule 30.10.2009
comment
просто хочу предупредить, что для этой библиотеки нет документации, хотя она очень хороша. - person Brandon Frohbieter; 14.03.2011


Другой - RGraph: диаграммы и библиотека графиков Javascript:

http://www.rgraph.net

На основе Canvas, так что это быстро, и есть примерно 20 различных типов диаграмм. Это бесплатно и для некоммерческого использования!

person Community    schedule 17.07.2011

Мой фаворит (флот) уже упоминался.

Но обязательно изучите Ortho. Он отлично подходит для древовидных диаграмм и временных шкал.

person Community    schedule 23.09.2008

В библиотеке диаграмм dojo много активности, и, что замечательно, я тоже без проблем использую ее в приложении AIR, довольно круто! См., Например, здесь http://www.sitepen.com/blog/2008/05/27/dojo-charting-event-support-has-landed/

person Community    schedule 23.09.2008

Ознакомьтесь с API визуализации Google, который является своего рода обобщением более простого API диаграмм

person Community    schedule 27.09.2008

http://code.google.com/apis/visualization/documentation/gallery.html

Имеет очень интересные интерактивные возможности, включая карты, датчики и диаграммы.

person Community    schedule 20.04.2011

Мы только что купили лицензию на TechOctave Charts Suite для нашего нового стартапа. Я их очень рекомендую. Лицензирование просто. Графики выглядят великолепно! Начать работу было легко, и у нас есть мощный API на тот случай, когда он нам понадобится. Я был шокирован тем, насколько чистый и расширяемый код. Действительно доволен своим выбором.

person Community    schedule 02.01.2012

Попробуйте временную шкалу MIT simile, которую можно превратить в диаграмму - http://simile.mit.edu/timeline/

или последний, http://code.google.com/p/gchart/

person Community    schedule 23.09.2008

Это не библиотека Javascript, но она может быть подходящей альтернативой - посмотрите Google Charts, где вы можете генерировать диаграммы, передавая данные строки запроса в их веб-службу.

person Community    schedule 23.09.2008

Взгляните на Bluff. Это порт JavaScript графической библиотеки Gruff для Ruby.

person Community    schedule 23.09.2008

Protochart - это все, что вам нужно

person Community    schedule 20.10.2008

Sencha приобрела Raphael, и теперь их диаграммы представляют собой чистый javascript, начиная с версии 4. Упомянутые выше Emprise и HighCharts - мои два фаворита.

http://www.sencha.com/

person Community    schedule 28.02.2011

Для более необычных диаграмм: http://thejit.org/

person Community    schedule 13.04.2011

Я могу порекомендовать ArcadiaCharts. Совершенно новая профессиональная библиотека графиков для JavaScript и GWT. Работает во всех браузерах без плагинов. Легко и быстро в использовании: создает великолепно выглядящие диаграммы с помощью всего нескольких строк кода. Бесплатно для некоммерческого использования.

person Community    schedule 25.08.2011
comment
Я играл с этим и заметил, что на веб-сайте нет возможности получить коммерческую лицензию. Фактически, на сайте неясно, бесплатно это или нет. - person zumalifeguard; 23.02.2012
comment
Ты прав. Веб-сайт был обновлен, так что теперь вы можете легко узнать, какая коммерческая лицензия соответствует вашим требованиям: ArcadiaCharts. - person Hoang-Tran Vo; 11.05.2012

Fusion charts содержит новую библиотеку javascript / jquery, которая выглядит многообещающей.

person Community    schedule 27.10.2011

Если вам нужна только гистограмма. Я опубликовал код, который использовал в старом проекте. Кто-то сказал мне, что реализация VML не работает в последних версиях IE, но SVG должен работать нормально. Возможно, вернусь к проекту и выпустим несколько серверных рендереров, которые у меня уже есть, и, возможно, слой рендеринга WebGL. Есть ссылка: http://blog.conquex.com/?p=64

person Community    schedule 11.11.2011

Вероятно, это не то, что ищет OP, но поскольку этот вопрос стал списком вариантов библиотеки диаграмм JS: jQuery Sparklines действительно круто.

person Community    schedule 24.01.2012

Ознакомьтесь с ZingChart HTML5 Canvas, SVG, VML и Flash-диаграммами. Очень мощная и совместимая библиотека. Я в команде Zing - упомяните нас в Twitter @zingchart или отправьте любые вопросы по адресу [email protected].

person Community    schedule 18.04.2011