Библиотека построения диаграммы Ruby?

Вот некоторый T-SQL, который дает Вам число лет, месяцев и дней со дня, определенного в @date. Это принимает во внимание то, что DATEDIFF () вычисляет различие, не рассматривая, какой месяц или день это (так разность месяца между 8/31, и 9/1 составляет 1 месяц), и дескрипторы, что с оператором выбора, который постепенно уменьшает результат в соответствующих случаях.

DECLARE @date datetime, @tmpdate datetime, @years int, @months int, @days int
SELECT @date = '2/29/04'

SELECT @tmpdate = @date

SELECT @years = DATEDIFF(yy, @tmpdate, GETDATE()) - CASE WHEN (MONTH(@date) > MONTH(GETDATE())) OR (MONTH(@date) = MONTH(GETDATE()) AND DAY(@date) > DAY(GETDATE())) THEN 1 ELSE 0 END
SELECT @tmpdate = DATEADD(yy, @years, @tmpdate)
SELECT @months = DATEDIFF(m, @tmpdate, GETDATE()) - CASE WHEN DAY(@date) > DAY(GETDATE()) THEN 1 ELSE 0 END
SELECT @tmpdate = DATEADD(m, @months, @tmpdate)
SELECT @days = DATEDIFF(d, @tmpdate, GETDATE())

SELECT @years, @months, @days
16
задан msvcyc 21 November 2009 в 15:50
поделиться

8 ответов

Или создайте облака для диаграмм через Google - вот жемчужина для этого: https://github.com/mattetti/googlecharts

Пример:

# console
$ ruby script/plugin install git://github.com/mattetti/googlecharts.git

# view
<img src="<%=GoogleChart.pie(['1997',10],['1998',70],['1999',20]).to_url%>">
4
ответ дан 30 November 2019 в 17:27
поделиться

Для графов на Ruby есть прекрасный драгоценный камень, который называется

gruff

. Вам понадобятся великолепные библиотеки imagemagick и rmagick . Поскольку установка последних двух не является тривиальной задачей (но и несложной), для этого есть FAQ по установке .

Выглядит примерно так:

Дополнительные примеры этой библиотеки: http://geoffreygrosenbach.com/projects/show/5

12
ответ дан 30 November 2019 в 17:27
поделиться

Для маленьких графиков есть Sparklines

1
ответ дан 30 November 2019 в 17:27
поделиться

Диаграмма Yui из Yahoo работает и в автономном режиме. Для этого есть рубиновый плагин, я не знаю его названия, извините.

0
ответ дан 30 November 2019 в 17:27
поделиться

Открыть Flash Chart 2 очень приятно и довольно просто. Вы получаете больше динамических функций (всплывающие подсказки, onclick, hover, ...): выглядит красиво :)

В этом родственном вопросе упоминается еще несколько очень интересных альтернатив. Из них я считаю наиболее интересными (мне не разрешено использовать гиперссылки, поэтому используйте google :)

  • flot, графическая библиотека на основе jQuery, с флотилией плагинов rails. Особенно, если вы уже используете jQuery в своем приложении Rails, как и я.
  • raphael, который выглядит очень интересно, а также имеет младшего брата gRaphael, особенно для графиков / диаграмм. Чистый javascript, увы, на данный момент без плагинов. Но это не должно быть слишком сложно.

Это обе библиотеки javascript, предлагающие такой же внешний вид и интерактивность, как альтернатива flash, без использования flash, что, по-моему, большое преимущество. Кроме того, кажется, что существует больше интерактивных опций / возможностей, чем может предложить открытая флэш-карта. Я собираюсь проверить это :)

Мне не разрешено показывать более 1 URL, поэтому Google - ваш друг :)

Надеюсь, это поможет :)

3
ответ дан 30 November 2019 в 17:27
поделиться

Есть еще один гем, называемый scruffy, которому не нужны rmagick и imagemagick / graphicsmagick, если вы хотите сгенерировать только svg.

Вот страница проекта http://scruffy.rubyforge.org , на которой довольно много примеров

1
ответ дан 30 November 2019 в 17:27
поделиться

Помимо упомянутого выше гема googlecharts есть еще два, использующих API Google Charts, gchartb и ruby-googlechart.

Для очень замечательной библиотеки protovis javascript charting library, похоже, что кто-то запустил плагин для rails под названием protovis on rails, но он все еще выглядит грубым и давно не трогался.

4
ответ дан 30 November 2019 в 17:27
поделиться

Долой вспышку и imagemagick.

Попробуйте Highcharts с плагином lazy high charts для рубина: github.com/michelson/lazy_high_charts.

7
ответ дан 30 November 2019 в 17:27
поделиться
Другие вопросы по тегам:

Похожие вопросы: