Gruff 绘图库

[size=medium]Gruff 是Geoffrey Grosenbach开发的图表绘制gem.
文档: [url=http://gruff.rubyforge.org/]http://gruff.rubyforge.org/[/url]
安装: 需要ImageMagick 和 RMagick. 安装完毕可以用Gruff主页上的Code Sample测试一下是否安装成功. 我运行的时候字体有些问题,gruff采用了自带的font, 在自己的机器上跑的时候需要指定一下font的路径:

g.font = File.expand_path('/your/font/path/yourfont.ttf')


Gruff 提供了很多有趣的图类:

[list]

[*]Gruff::Line 就一般的线图 股市行情什么的可以用用
[*]Gruff::Pie Pie图 市场份额一类的比较方便
[*]Gruff::Bar 直方图 年份变化一类都可用
[*]Gruff:Area 面积图 似乎用处不大
[*]Gruff:Scene 场景图 这个比较有趣 在文档提供的例子中:
[/list]

g = Gruff::Scene.new("500x100", "path/to/city_scene_directory")
# Define order of layers, back to front 设定图像层所在的目录
g.layers = %w(background haze sky clouds)

# Define groups that will be controlled by the same input 可以将受同一控制的层
组成组
g.weather_group = %w(clouds)
g.time_group = %w(background sky)

# Set values for the layers or groups 设定控制输入 对其进行匹配选择图片
g.weather = "cloudy"
g.time = Time.now
g.haze = true

# Write the final graph to disk
g.write "hazy_daytime_city_scene.png"

这个可以做背景图的实时控制 比如早晚太阳的不同位置
[list]
[*]Gruff::Spider 这是我的应用中需要的图片类型 中文叫相图吧 Gruff::Net和这个类似 差
别在于只标识出包络线 相图标识了所围成的区域 下面就以这个类别为例说说如何在rails
中用Gruff
[/list]
我的应用是大概就是在用户口味的统计数据上进行相图绘制 作为用户资料的一个部分 因
此把相图绘制写在了model里面而不是在controller里 由于需要仅仅被本类调用 设置为
protected方法 由于用户每更新或者创建的时候都重新绘制相表 因此设定了相应的
callback 同时在用户注销的时候删除plot


require 'gruff'
class User < ActiveRecord::Base

after_save :spider_plot
after_create :spider_plot
after_update :spider_plot
after_destroy :spider_plot_destroy

protected
def spider_plot
# plotting
end

def spider_plot_destroy
# delete the plot
end
end

在controller中的代码传递了图像所在的路径给view 在view中间就直接用image_tag显示了

最后来张无耻的图

[img]/upload/attachment/106200/bf16aa3a-005a-3059-9589-c5ba6cab051f.png[/img]

[/size]
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值