`
fireflyman
  • 浏览: 118283 次
  • 性别: Icon_minigender_1
  • 来自: 火星
社区版块
存档分类
最新评论

如何用Gruff生成图表

    博客分类:
  • ROR
阅读更多

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
分享到:
评论
8 楼 fireflyman 2010-11-05  
Rails: Gruff进阶应用
http://hlee.iteye.com/blog/438594
7 楼 ariestiger 2010-08-16  
我是在win下面啊,虽然直接执行这个脚本有问题,但我用rails的话,是没问题的,也就是在controller里send_file是可以的。
可能这个和之前有一次被360将ruby当做病毒有关系,但为什么在rails里可以?没时间去找原因了,rails能用就行吧,以后再找原因好了。
6 楼 维塔斯的星星 2010-07-29  
连贫嘴这种甚么都不会的都能出来回答
5 楼 Hooopo 2010-07-28  
sevk 写道
这个要sudo 权限啊? 为什么,何解?

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

要写文件当然得有写权限。。
4 楼 sevk 2010-07-28  
这个要sudo 权限啊? 为什么,何解?

g.write('greport.png') 要写入png文件的权限?
3 楼 fengfirst 2010-07-27  
不错
2 楼 贫嘴男孩 2010-07-27  
楼上,用sudo 命令执行ruby文件就行了
1 楼 ariestiger 2010-07-26  
问一下, 不是关于gruff的问题, 而是关于ruby的, 我也是按着这个来做, 但结果是权限不足, 貌似我的ruby没权限写文件? 知道是什么原因嘛?谢谢。

相关推荐

    ruby中gruff画图的简单例子

    在Ruby编程语言中,Gruff库是一个非常有用的工具,它允许开发者轻松地创建各种图表,如条形图、线图、饼图等。这个库主要针对那些不希望编写大量低级图形代码,而是专注于数据可视化的用户。在本文中,我们将深入...

    gruff:Ruby的Gruff图形库

    g = Gruff :: Line . new g . title = 'Wow! Look at this!' g . labels = { 0 =&gt; '5/6' , 1 =&gt; '5/15' , 2 =&gt; '5/24' , 3 =&gt; '5/30' , 4 =&gt; '6/4' , 5 =&gt; '6/12' , 6 =&gt; '6/21' , 7 =&gt; '6/28' } g . data :Jimmy ,...

    chart_demo.zip

    6. **最佳实践**:如何有效地组织代码,使图表生成过程更高效,以及如何利用Ruby的特性简化代码。 7. **错误处理和调试**:在实践中遇到的问题和解决方法,这对于学习任何编程语言都是宝贵的。 8. **文档和注释**...

    benchmark_driver-output-gruff:Benchmark_Driver插件以渲染条形图

    BenchmarkDriver :: Output :: Gruff 基准测试驱动程序插件,用于使用gruff.gem渲染图形。安装安装rmagick.gem的依赖项。 另请参阅: : # macOSbrew install imagemagick@6PKG_CONFIG_PATH=/usr/local/opt/...

    scrip:带有上下文无关语法的借据

    Scrip 是一种使用解析表达式语法 (PEG) 和解析器(由生成)来描述的微型语言,该解析器能够理解 (且仅 IOU)。 句法 在顶层存在一个赞助规则,它可以是单个赞助规则或由和连词分隔的赞助规则集合。 每个赞助的格式...

    日本每月交通事故

    4. **数据可视化**:`create.rb`脚本可能使用了诸如`Gnuplot`、`Gruff`或`Chartkick`等Ruby库,将分析结果转化为图表,帮助用户直观理解数据。 5. **时间序列分析**:由于是“每月”交通事故,我们需要处理时间序列...

    projetods2:这是 Aline 老师的 ds2 项目的存储库。 谁将运行该项目

    3. 数据可视化:Ruby社区提供了`Gnuplotrb`或`Gruff`库,它们可以生成图表,帮助团队成员直观地理解数据和分析结果。 4. 自动化脚本:Ruby的`Rake`工具可以用于构建自动化任务,比如数据下载、预处理脚本的执行,...

    iam-viz:从AWS IAM配置绘制图形

    在这个应用中,HTML可能包含图表容器,用于显示由JavaScript生成的IAM图形。此外,HTML还可能与CSS和JavaScript一起工作,以实现交互式和动态的图形展示。 **使用步骤** 1. **安装依赖**:确保你已经安装了Ruby和...

    Genre-Map:电子音乐流派的流派地图

    此外,为了生成直观的地图,开发者可能利用了如Gnuplot或Ruby的图表库如Gruff,来绘制出流派间的层级关系或网络图。 在实际操作中,Genre-Map的实现可能涉及以下几个步骤: 1. 数据收集:收集各种电子音乐流派的...

    databox-cookbook:数据库厨师食谱

    Ruby也有多个数据可视化库,如`gruff`、`plotrb`或`gplot2`,它们可以与`daru`结合使用,帮助你将数据框转换为图表,更好地理解数据。 8. **案例研究** 通过一个实际案例,比如分析销售数据,展示如何使用`daru`...

    allegrograph-tutorial:该教程贯穿AllegroGraph的快速入门指南和SPARQL教程。 包括可正常工作的docker-compose文件

    可以通过在存储库视图页面上单击“查看三元组”来探索使用SPARQL: 或者也可以通过从存储库视图页面中单击“在Gruff中浏览存储库”来查看Gruff:通过HTTP使用SPARQL查询执行方便的脚本可以执行任意sparql查询。...

    scholar-bot:一个不协调的机器人来组织东西

    6. **数据可视化**:为了便于理解,scholar-bot 可能提供了数据可视化功能,如图表生成,展示文献引用关系、作者网络或其他统计信息。这可能利用了Ruby的`gruff`或`chartkick`库。 7. **配置和扩展性**:作为一个...

    一些图形算法的Ruby实现_Ruby_下载.zip

    在这个"一些图形算法的Ruby实现_Ruby_下载.zip"压缩包中,我们可以期待找到一些用Ruby编写的图形算法示例代码,帮助我们理解和应用这些概念。 1. 图的基本概念: - 图是由节点(或顶点)和边构成的数据结构,可以...

    语义网和关联数据开发实践

    - **Gruff**:一个用于绘制图形和图表的Java库,可以帮助开发者更好地呈现AllegroGraph中的数据分析结果。 **3.1 Sesame概述** Sesame是一个开源的Java框架,用于处理RDF数据。它提供了一系列工具和服务,包括: ...

    适合度图

    使用Ruby的绘图库,如`gnuplotrb`或`gruff`,可以绘制出个体的适合度分布图。这有助于直观地了解种群的整体适应度状况和演化趋势。 ```ruby require 'gnuplotrb' GnuplotRB::Plot.new( ['individual_fitnesses'...

    meshiterro

    4. **数据可视化**:Ruby可以与诸如`gnuplot`或`gruff`这样的库结合,将网格数据转换成可视化图表,帮助用户更好地理解复杂数据。 5. **版本控制**:Ruby可以轻松集成Git,使得Meshiterro项目可以利用版本控制管理...

    cluster_analysis_in_pattern_recognition

    关于模式识别中的聚类分析。要求Ruby 2.1.1安装gem install rmagick pry gruff用法ruby main.rb -i spoons.jpg -n 2ruby main.rb --help

    Ruby自动化脚本实现网络拓扑映射

    - **图形化展示**:结合如`rubyvis`、`gruff`等可视化库,Ruby能够将网络拓扑结构以图形化的方式展示出来,便于直观理解和后续分析。 #### 3. 实现步骤 实现Ruby自动化脚本进行网络拓扑映射,大致可以分为以下几个...

Global site tag (gtag.js) - Google Analytics