论坛首页 编程语言技术论坛

如何用Gruff生成图表

浏览 6002 次
精华帖 (0) :: 良好帖 (2) :: 新手帖 (1) :: 隐藏帖 (0)
作者 正文
   发表时间:2010-07-26   最后修改:2010-07-26

Gruff 是使用ruby编写的Ruby图标库,可以创建包括直线图,柱状图,饼状图在内的多种图表.

Github:http://github.com/topfunky/gruff

安装:
gem install gruff


(1)直线图
#请注意,这个文件千万不能命名为gruff.rb,否则后患无穷: uninitialized require 'rubygems'
require 'gruff'

g = Gruff::Line.new
g.title = "My Graph"
g.font = File.expand_path('c:/WINNT/Fonts/simsun.ttf') 
#指定一下font的路径,以便使用中文
g.data("火星組", [1, 2, 3, 4, 4, 3])
g.data("水星組", [4, 8, 7, 9, 8, 9])
g.data("土星組", [2, 3, 1, 5, 6, 8])
g.data("木星組", [9, 9, 10, 8, 7, 9])

g.labels = {0 => '2006', 2 => '2008', 4 => '2010'}

g.write('greport.png')


会生成下面这张图:


(2)餅狀圖
只需修改上面代碼的Gruff::Line.new為Gruff::Pie.new,即可生成下圖:
詳細可參考:http://gruff.rubyforge.org/




用户还可以指定图标的颜色,背景图案甚至字体.

先來看看顏色吧:
 add_color('#c0e9d3')


參考其源碼:
def add_color(colorname)
      @colors << colorname
 end


針對上面的代碼,可以這樣處理:
g.data("火星組", [1, 2, 3, 4, 4, 3],'#c0e9d3') 


至于背景圖片,可以參考下面代碼:
 graph.theme = {
   :colors => %w(orange purple green white red),
   :marker_color => 'blue',
   :background_colors => %w(black grey),
   :background_image =>'squirrel.png'
 }

針對上面例子,我的代碼如下:
g.theme = {
   :background_image => 'cd.png'
 }

其它不一一敘述,詳細還請參考下面鏈接:

http://gruff.rubyforge.org/
http://nubyonrails.com/pages/gruff
Ruby Gruff的图表功能
http://www.weekface.info/2010/07/25/ruby-gruff-chart
   发表时间:2010-07-26  
问一下, 不是关于gruff的问题, 而是关于ruby的, 我也是按着这个来做, 但结果是权限不足, 貌似我的ruby没权限写文件? 知道是什么原因嘛?谢谢。
0 请登录后投票
   发表时间:2010-07-27  
楼上,用sudo 命令执行ruby文件就行了
0 请登录后投票
   发表时间:2010-07-28  
这个要sudo 权限啊? 为什么,何解?

g.write('greport.png') 要写入png文件的权限?
0 请登录后投票
   发表时间:2010-07-28  
sevk 写道
这个要sudo 权限啊? 为什么,何解?

g.write('greport.png') 要写入png文件的权限?

要写文件当然得有写权限。。
0 请登录后投票
   发表时间:2010-07-29  
连贫嘴这种甚么都不会的都能出来回答
0 请登录后投票
   发表时间:2010-08-16  
我是在win下面啊,虽然直接执行这个脚本有问题,但我用rails的话,是没问题的,也就是在controller里send_file是可以的。
可能这个和之前有一次被360将ruby当做病毒有关系,但为什么在rails里可以?没时间去找原因了,rails能用就行吧,以后再找原因好了。
0 请登录后投票
   发表时间:2010-11-05   最后修改:2010-11-05
Rails: Gruff进阶应用
http://hlee.iteye.com/blog/438594
0 请登录后投票
论坛首页 编程语言技术版

跳转论坛:
Global site tag (gtag.js) - Google Analytics