Каков ваш предпочтительный способ создания диаграмм в веб-приложении Ruby on Rails?

Я хотел бы добавить несколько диаграмм pie, bar и scatter в мое веб-приложение Ruby on Rails. Я хочу, чтобы они были привлекательными, легко добавлять и не вводить много накладных расходов.

Какое графическое решение вы бы порекомендовали? Каковы его недостатки (требуется Javascript, Flash, дорогой и т.д.)?

Ответ 1

Google Charts - отличный выбор, если вы не хотите использовать Flash. Он довольно прост в использовании сам по себе, но для Rails это еще проще с драгоценным камнем gchartrb. Пример:

GoogleChart::PieChart.new('320x200', "Things I Like To Eat", false) do |pc| 
  pc.data "Broccoli", 30
  pc.data "Pizza", 20
  pc.data "PB&J", 40 
  pc.data "Turnips", 10 
  puts pc.to_url 
end

Ответ 2

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

Ответ 4

Для этого требуется flash, а не является бесплатным (хотя и недорогим): amcharts.

Я использовал его успешно и как он. Я некоторое время оценил несколько вариантов и выбрал их. Однако в то время Google Chart был не таким зрелым, как кажется сейчас. Я бы подумал, что сначала, если я буду переоценивать сейчас.

Ответ 5

Там также Scruffy. Недавно я взглянул на код, и мне было легко его модифицировать/расширять. Он производит svg и (путем преобразования) png.

Ответ 6

Вы пробовали API Google Карт? - API веб-сервисов на самом деле не намного проще. Он бесплатный для использования, простой в реализации, и графики не выглядят слишком дрянными.

Ответ 7

Open Flash Chart II - это бесплатный вариант, который дает очень хороший результат. Он, как и следовало ожидать, требует Flash.

Fusion Charts еще лучше, но составляет $499. Изучая это, я нашел сокращенную бесплатную версию, которая могла бы удовлетворить ваши потребности.

Ответ 8

I 2nd голосование за flot. Последняя версия позволяет выполнять некоторые анимации и действия, которые, как я думал ранее, возможно только через Flash. Документация фантастическая. Это легко написать вручную, но для простых случаев это становится еще проще с помощью плагина Rails под названием flotilla. Вы должны проверить страницу , чтобы лучше понять, на что она способна. Особенно впечатляют возможности масштабирования и наведения.

Ответ 9

В новой визуализации Google появляются диаграммы более разнообразного типа, более привлекательные и интерактивные, чем Google Graphs.

http://code.google.com/apis/visualization/

Ответ 10

Morris.js - это хороший и с открытым исходным кодом. Я бы хотел выбрать его по сравнению с highcharts. Существует новый отличный видеоурок от Railscasts

Ответ 11

Я только что нашел ZiYa создает некоторые действительно сексуальные диаграммы и специфичен для Rails.

Недостатком является использование Flash, и если вы не хотите, чтобы сайты ссылались на страницу XML/SWF, она стоила 50 долларов США за сайт.

[Я еще не решил об этом, но хотел выбросить его там, если люди захотят его проголосовать]

Ответ 12

Я широко использовал графики Fusion из веб-приложения Java, но он должен работать так же, как и с Rails, поскольку вы просто внедряете Flash через HTML или JavaScript и передаете ему XML-данные. Это гладкий пакет, и их поддержка всегда была очень отзывчивой.

Ответ 14

Карты Google очень приятные, но это не решение только для рельсов. Вы просто используете язык программирования по вашему выбору для динамического создания URL-адресов, содержащих данные, и google возвращает вам приятное изображение с вашей диаграммой.

http://code.google.com/apis/chart/

Ответ 15

В старые времена я решил опрокинуть свои собственные (используя RVG/RMagick), главным образом потому, что у Груфа не было всего, что я хотел. Недостатком было то, что поиск и устранение всех ошибок в графическом коде - это боль. В наши дни Gruff - это мой выбор, поскольку он действительно продвинулся в плане настройки и гибкости.

Стандартные шаблоны Gruff/цветовые решения сосут, однако, вам нужно будет заманить руки за лучшие результаты.

Ответ 16

Что касается amcharts, там есть "бесплатная" версия с очень небольшим количеством ограничений, которое генерирует флэш-графики, включая "диаграмму amCharts". com ".

И там есть хороший плагин, ambling, который предоставляет вам некоторые вспомогательные методы, чтобы легко добавлять графики к вашим представлениям. Обратите внимание, что справочная документация amCharts.com по-прежнему необходимо адаптировать график к вашим требованиям.

Ответ 17

Карты GoogleCharts и Gruff великолепны, но иногда им не хватает некоторых функций, которые мне нужны для более научного построения. Существует жемчужина для gnuplot, которая может быть полезна для некоторых из этих ситуаций.

http://rgplot.rubyforge.org/

Ответ 18

Я начал использовать protovis для создания диаграмм SVG с помощью javascript. Мой базовый подход в рельсах состоит в том, чтобы иметь контроллер, который возвращает данные, которые должны быть начерчены как JSON, и зачерпнуть его с помощью javascript и protovis.

Единственным недостатком является то, что полная поддержка IE (поскольку она основана на SVG) в настоящее время недоступна прямо из коробки... Тем не менее, текущие исправления идут справедливым способом предоставления поддержки IE, подробности которой можно найти здесь.

Ответ 20

Кажется, что gchartrb gem больше не поддерживается. Автор указывает на эти драгоценные камни:

Ответ 21

Мы делаем это, выгружая gnuplot для создания диаграмм в качестве PNGs на стороне сервера. Это немного старая школа, и диаграммы не являются интерактивными, но она работает и кэшируема.

(Другая причина, по которой мы это делаем, - это то, что мы можем поместить точно такую ​​же диаграмму в PDF-версию отчета).

Ответ 22

Это не специально RoR, но это довольно гладкий порт Gruff для javascript: http://bluff.jcoglan.com/

Ответ 23

ChartDirector. Ugly API, но хорошие результаты на стороне сервера. Самостоятельный двоичный файл.

Ответ 24

FWIW, я не поклонник использования графиков Google, когда они подходят и заканчиваются. Я считаю, что переменные для калибровки, в частности, непредсказуемы - диаграмма делает свое дело.

Я еще не играл с Gruff/Bluff/и т.д., но для проекта с более высоким профилем я не буду использовать Google Chart.

Ответ 25

Если вам нужны довольно сексуальные диаграммы, которые легко сгенерировать, и вы можете включить Flash, тогда вам обязательно нужно взглянуть на maani.us xml/swf графики.

Некоторые построители XML за ним, и вы готовы к работе.

Ответ 26

FusionCharts - очень хороший графический продукт. Хорошо работает с RoR. Их поддержка и форумы хороши. Бесплатная версия этого продукта имеет ограниченное количество графиков и функций, но не водяной знак.

Ответ 27

Я только начал использовать googlecharts для моего проекта rails 3. Это красиво и чисто, и, похоже, это единственная графическая анимация на основе api, которая жива. Другие неактивны и в основном используют старые графические карты api (выпущенные где-то в 2007-2008 годах).

https://github.com/mattetti/googlecharts

Ответ 28

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

В первую очередь я использую SVG, что означает отсутствие IE8, но это становится проблемой.

Ответ 29

HighChart - Библиотека графиков, написанная на чистом JavaScript

Драгоценные камни, такие как highchart-rails, lazy-high-chart упрощает интеграцию с рельсами

Ответ 30

gem 'chart' позволяет легко добавлять графики ChartJS и NVD3 в рельсы.