Який ваш найкращий спосіб створювати діаграми у веб-додатку Ruby on Rails?


76

Я хотів би додати трохи кругових, стовпчикових та діаграм розкиду до мого веб-додатку Ruby on Rails. Я хочу, щоб вони були привабливими, їх легко додавати і не створювати особливих витрат.

Яке рішення для побудови графіків ви б порекомендували?
Які його недоліки (потрібен Javascript, Flash, дорогий тощо)?


Врешті-решт я пішов на реалізацію діаграм Google, але зараз переходжу до візуалізації Google.
RichH

Зараз я перейшов на D3 у 2013 році
RichH

highcharts - чудова бібліотека
hsgubert

Відповіді:


59

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

Для початку я вирішив піти на Google Charts та gchartrb. Це просто і швидко - я можу перейти до чогось більш складного, коли мені потрібно.
RichH

1
З тих пір я виявив, що діаграми Google трохи боляче, оскільки етикетки пирогів часто переповнюють боки діаграми, і вони не такі гарні. Я переходжу до візуалізації Google, яка на сьогодні виглядає набагато приємніше, але на основі Javascript.
RichH

4
Куди ви кладете цей код? На контролері? Як ви це відображаєте?
B Сім

15

Якщо вам не потрібні зображення, і ви можете вирішити, що вам потрібен JavaScript, ви можете спробувати рішення на стороні клієнта, як flot плагіна jQuery .



8

Він вимагає спалаху і не безкоштовний (хоча і недорогий): амчарки .

Я успішно використовував це і мені подобається. Я оцінив низку варіантів і вибрав його. У той час, однак, Google Charts не був таким зрілим, як здається зараз. Я б вважав це першим, якби я мав переоцінити зараз.



6

Ви пробували API Google Charts ? - API веб-сервісу насправді не набагато простіші. Він безкоштовний у використанні, простий у реалізації, а діаграми виглядають не надто неякісними.


6

Open Flash Chart II - це безкоштовний варіант, який дає дуже хороший результат. Для цього, як і слід було очікувати, потрібен Flash.

Fusion Charts ще приємніше, але коштує 499 доларів. Досліджуючи це, я знайшов скорочену безкоштовну версію, яка може задовольнити ваші потреби.


6

Я 2-й голос за флот . Остання версія дозволяє виконувати деякі анімації та дії, які раніше я вважав можливими лише за допомогою Flash. Документація фантастична. Писати від руки просто, але для простих випадків це стає ще простіше завдяки плагіну Rails, який називається флотилія . Вам слід переглянути сторінку прикладів, щоб краще зрозуміти, на що вона здатна. Особливо вражають можливості масштабування та наведення.



4

Morris.js - приємний і відкритий код. Я хотів би вибрати його порівняно з хайчартами. Існує новий чудовий відеоурок від Railscasts


3

Я щойно виявив, що ZiYa випускає справді сексуальні хіт-паради та стосується Rails.

Недоліками є те, що він використовує Flash, і якщо ви не хочете, щоб сайти посилалися на сторінку XML / SWF, це коштує 50 доларів за сайт.

[Я ще не визначився з цим, але хотів викинути його на той випадок, якщо люди хочуть проголосувати]


Gruff Graphs не вимагає флеш-пам’яті, специфічний для рейок та безкоштовний.
lordscarlet

Крім того, схоже, ZiYa просто дає вам прості методи реалізації maani.us/xml_charts/index.php?menu=Gallery
lordscarlet

Ви праві, лордскарлет ZiYa - це просто оболонка RoR для діаграм XML / SWF, але це може бути дуже корисним. Ліцензія призначена для XML / SWF - ZiYa ви отримуєте безкоштовно.
RichH

Влучне зауваження. Я використовував XML / SWF, і мені дуже подобається функціональність. Переваги включають функціональність спалаху, але недоліком є ​​те, що це спалах. Зображення трохи переносніші.
lordscarlet

3

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



2

Діаграми Google - це дуже приємно, але це не лише рішення для рейок. Ви просто використовуєте мову програмування за вашим вибором, щоб динамічно створювати URL-адреси, що містять дані, і Google повертає вам гарне зображення з вашою діаграмою.

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


2

За старих часів я вирішив прокрутити свій власний (за допомогою RVG / RMagick), головним чином тому, що у Gruff було не все, що я хотів. Недоліком було те, що пошук і усунення всіх помилок у графічному коді - це біль. У наші дні Gruff - це мій вибір, оскільки він справді пішов уперед з точки зору налаштування та гнучкості.

Звичайні шаблони Gruff / вибір кольорів відмовні, тому вам доведеться бруднити руки для досягнення найкращих результатів.


2

Щодо амчарт , існує "безкоштовна" версія з дуже невеликим обмеженням, яка генерує флеш-діаграми, включаючи згадування "діаграми amCharts.com".

І є гарний плагін, ambling , який надає вам деякі допоміжні методи для легкого додавання діаграм до ваших поглядів. Зверніть увагу, що довідкова документація amCharts.com все ще необхідна для адаптації діаграми до ваших вимог.


2

Діаграми GoogleCharts та Gruff чудові, але іноді їм не вистачає деяких функцій, які потрібні мені для більш наукового побудови графіків. Існує дорогоцінний камінь для gnuplot, який може бути корисним у деяких із цих ситуацій.

http://rgplot.rubyforge.org/


2

Я почав використовувати protovis для створення діаграм SVG за допомогою JavaScript. Мій основний підхід у rails - це наявність контролера, який повертає дані, щоб вони були позначені як JSON, і забирає їх трохи javascript та protovis.

Єдиним недоліком є ​​те, що повна підтримка IE (оскільки вона базується на SVG) наразі недоступна прямо з коробки ... Однак, нинішні виправлення є справедливим способом надання підтримки IE, подробиці якої можна знайти тут .




0

Ми робимо це, обкладаючи gnuplot для створення діаграм як PNG-файлів на стороні сервера. Це трохи олдскул, і діаграми не є інтерактивними, але вони працюють та кешуються.

(Інша причина, по якій ми робимо це, полягає в тому, що ми можемо розмістити точно таку ж діаграму у PDF-версії звіту).




0

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

Я ще не грав з Gruff / Bluff / тощо, але для більш гучного проекту я не буду використовувати Google Charts.


0

Якщо ви хочете досить сексуальні діаграми, які легко генерувати, і ви можете увімкнути Flash, тоді вам неодмінно слід поглянути на графіки maani.us xml / swf .

За цим стоїть XML-конструктор, і ви готові до роботи.


Обгортка ZiYa, про яку я згадав, забезпечує обгортку Rails для xml / swf. Дуже класні графіки.
RichH

Обгортка ZiYa, здається, мертва і зараз їй бракує документації.
Тревіс Пессетто,

0

FusionCharts - дуже хороший графічний продукт. Добре працює з RoR. Їх підтримка та форуми хороші. Безкоштовна версія цього продукту має обмежену кількість діаграм та функцій, але не має водяних знаків.


0

Я щойно почав використовувати googlecharts для свого проекту rails 3. Це приємно і чисто, і, здається, є єдиним дорогоцінним камінням на основі API візуалізації Google, яке живе. Інші неактивні і здебільшого використовують старі API-графіки Google (випущено десь у 2007-2008 рр.).

https://github.com/mattetti/googlecharts


0

D3 став моїм найкращим способом додавання чудових діаграм до веб-додатків. Вам доведеться трохи попрацювати, ніж деякі інші рамки, але зовнішній вигляд і контроль переважають це.

Я в основному використовую SVG, що означає відсутність IE8, але це стає все меншою проблемою.



0

gem 'chart' полегшує додавання діаграм ChartJS та NVD3 до рейок.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.