2012-06-04 2 views
2

У меня проблема с Gruff and Rails. Примеры на site завершаться:Груфф не работает. Что делать?

ZeroDivisionError: divided by 0 
from /home/prikha/.rvm/gems/[email protected]/gems/gruff-0.3.6/lib/gruff/base.rb:1066:in `label' 
from /home/prikha/.rvm/gems/[email protected]/gems/gruff-0.3.6/lib/gruff/base.rb:590:in `setup_graph_measurements' 
from /home/prikha/.rvm/gems/[email protected]/gems/gruff-0.3.6/lib/gruff/base.rb:532:in `setup_drawing' 
from /home/prikha/.rvm/gems/[email protected]/gems/gruff-0.3.6/lib/gruff/base.rb:508:in `draw' 
from /home/prikha/.rvm/gems/[email protected]/gems/gruff-0.3.6/lib/gruff/line.rb:53:in `draw' 
from /home/prikha/.rvm/gems/[email protected]/gems/gruff-0.3.6/lib/gruff/base.rb:487:in `write' 
from (irb):8 
from /home/prikha/.rvm/rubies/ruby-1.9.3-p194/bin/irb:16:in `<main>' 

ответ

1

У меня была такая же проблема. Путь я решить это следующее: ZeroDivisionError появляется в 1066 линиях грубоватого/base.rb Давайте посмотрим на этот файл ближе

label = if (@spread.to_f % @marker_count.to_f == 0) || [email protected]_axis_increment.nil? 

Так, ZeroDivisionError была вызвана тем, что @marker_count свойства было равно до нуля. Я знаю, это не лучшее решение, но я добавил явное назначение @marker_count = <non-zero value> перед графиком. Итак, теперь пример с сайта выглядит следующим образом:

#!/usr/bin/ruby 
require 'rubygems' 
require 'gruff' 

g = Gruff::Line.new 
g.title = "My Graph" 

g.data("Apples", [1, 2, 3, 4, 4, 3]) 
g.data("Oranges", [4, 8, 7, 9, 8, 9]) 
g.data("Watermelon", [2, 3, 1, 5, 6, 8]) 
g.data("Peaches", [9, 9, 10, 8, 7, 9]) 
g.marker_count = 4 #explicitly assign value to @marker_count 
g.labels = {0 => '2003', 2 => '2004', 4 => '2005'} 

g.write('my_fruity_graph.png') 

Он отлично работает для меня. Я знаю, что это не общее решение проблемы, но этот хак может помочь вам разобраться с этой библиотекой, пока эта ошибка не будет исправлена ​​разработчиками.

ADD
@market_count представляет собой подсчет маркеров на вертикальной оси. Таким образом, вы можете играть с этим свойством, чтобы убрать свой график.

+0

Thats cool, это случилось, что piechart отлично работает. Надежда когда-нибудь будет исправлена, но графические библиотеки для ruby ​​кажутся мертвым местом. – prikha

+0

Вы можете попробовать исправить это самостоятельно, если у вас есть достаточно времени. Код ошибки [здесь] (https://github.com/topfunky/gruff/blob/master/lib/gruff/base.rb#L1069). – dmand

+2

Запросить запрос для быстрого перехода https://github.com/topfunky/gruff/pull/22 – prikha

Смежные вопросы