【问题标题】:Gruff is not working well. What to do?格鲁夫工作不顺利。该怎么办?
【发布时间】:2012-06-04 12:19:55
【问题描述】:

我遇到了 Gruff 和 Rails 的问题。 site 上的示例失败:

ZeroDivisionError: divided by 0
from /home/prikha/.rvm/gems/ruby-1.9.3-p194@rubymine/gems/gruff-0.3.6/lib/gruff/base.rb:1066:in `label'
from /home/prikha/.rvm/gems/ruby-1.9.3-p194@rubymine/gems/gruff-0.3.6/lib/gruff/base.rb:590:in `setup_graph_measurements'
from /home/prikha/.rvm/gems/ruby-1.9.3-p194@rubymine/gems/gruff-0.3.6/lib/gruff/base.rb:532:in `setup_drawing'
from /home/prikha/.rvm/gems/ruby-1.9.3-p194@rubymine/gems/gruff-0.3.6/lib/gruff/base.rb:508:in `draw'
from /home/prikha/.rvm/gems/ruby-1.9.3-p194@rubymine/gems/gruff-0.3.6/lib/gruff/line.rb:53:in `draw'
from /home/prikha/.rvm/gems/ruby-1.9.3-p194@rubymine/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>'

【问题讨论】:

    标签: ruby charts imagemagick rmagick gruff


    【解决方案1】:

    我遇到了同样的问题。 我解决它的方法如下: ZeroDivisionError 出现在 gruff/base.rb 的 1066 行 让我们仔细看看这个文件

    label = if (@spread.to_f % @marker_count.to_f == 0) || !@y_axis_increment.nil?
    

    因此,ZeroDivisionError 是由 @marker_count 属性等于零这一事实引起的。我知道,这不是最好的解决方案,但我添加了一个明确的分配 @marker_count = &lt;non-zero value&gt; 绘制图表之前。 因此,现在来自网站的示例如下所示:

    #!/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')
    

    它对我来说很好用。我知道这不是问题的通用解决方案,但这个 hack 可以帮助您处理该库,直到开发人员修复此错误。

    添加
    @market_count 是垂直轴上的标记数。因此,您可以使用此属性来美化您的图表。

    【讨论】:

    • 很酷,饼图工作正常。希望有一天有人会修复这个错误,但 ruby​​ 的图形库似乎是一个死区。
    • 如果你有足够的时间,你可以尝试自己修复它。错误代码是here
    • 合并拉取请求以快速解决问题github.com/topfunky/gruff/pull/22
    猜你喜欢
    • 2020-10-15
    • 2019-07-04
    • 2011-06-28
    • 2021-07-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多