`

Gruff: Rails 经典图表生成库简介

阅读更多
       Rails:Gruff进阶应用 点这里

       有关Gruff如何缓存和提高速度 点这里

       在Rails做报表和生产图表的时候,通常我们的选择很多,之前的文章中说到的Flex就是相当的趋势。然而,这并不妨碍Rails的很多图表插件(plugin)的市场份额,毕竟尺有所长。


       下面介绍的Gruff就是一个很老牌,很经典的图表生产库。这个库的特点是使用快捷简单。实际上,在我自己的项目中,我们就是Flex和Gruff都使用了。下面的图片是我自己使用Gruff和Flex生产的图表。

       

        下面是Flex的图形生成和控制


         
         那么,本篇是关于Gruff的。Gruff的官网上也有标准的演示效果图如下:



         并且有最简单的演示代码如下:

#!/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.labels = {0 => '2003', 2 => '2004', 4 => '2005'}

g.write('my_fruity_graph.png')




安装简单:


可以从Gruff的Git仓库上得到插件,也可以从RubyForge上直接gem

最初的画板大小创建:
g=Gruff::Line.new('800x400')


其中,Trace的颜色由如下代码控制:
    g.theme = {
      :colors => %w{white red blue yellow},
      :marker_color => '#888',
      :font_color => 'white',
      :background_colors => ['#111111', '#555555']
    }


标出横纵坐标如下:
    g.x_axis_label = 'Frequency (MHz)'
	
    g.y_axis_label = unit_diff==0 ? "Level (dBmV)" : "Level (dBuV)"	


标题和trace
    g.title="Profile #{profile.name}"
    g.data("Profile Reference", profile.trace.collect {|measurement| measurement + unit_diff})


标签和图片传送:
    g.labels = { 
      0   => "#{label_0} MHz", 
      124 => "#{label_1} MHz", 
      249 => "#{label_2} MHz",
      374 => "#{label_3} MHz",
      499 => "#{label_4} MHz" 
    }
    send_data(g.to_blob,
             :disposition => 'inline', 
             :type => 'image/png', 
             :filename => "profile_trace.png")
  • 大小: 116.4 KB
  • 大小: 41.1 KB
  • 大小: 31.7 KB
2
0
分享到:
评论
3 楼 Einsdan 2012-05-15  
中文乱码怎么解决的?
2 楼 夜鸣猪 2009-07-29  
gchartrb吗?
没有用过,

看起来也真的很简单,好用
1 楼 yangzhihuan 2009-07-28  
记得针对google chart也有一个rails的插件的(忘记叫啥名字了),但据说中文会乱码的,不知道楼主用过没有.

相关推荐

    gruff:Ruby的Gruff图形库

    一个用于制作漂亮图形的库。 建立在之上; 请参阅其网页,以获取系统级先决条件(ImageMagick等)以及如何安装它们的列表。 安装 将此行添加到您的应用程序的Gemfile中: gem ' gruff ' 然后执行: $ bundle 或...

    ruby中gruff画图的简单例子

    Gruff库的核心类是`Gruff::Base`,它是所有图表类型的基类。你可以通过继承这个类并覆盖一些方法来自定义图表。让我们来看一个简单的条形图例子: ```ruby require 'gruff' # 创建一个条形图实例 bar_chart = ...

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

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

    chart_demo.zip

    描述中的"演示"一词表明,这个压缩包的内容可能是为了展示如何使用Ruby进行图表制作,或者展示特定图表库的功能和用法。这可能包括代码示例、预览图像,甚至可能有解释性的文档,帮助用户理解每一步的操作和背后的...

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

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

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

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

    databox-cookbook:数据库厨师食谱

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

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

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

    日本每月交通事故

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

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

    - Graph库,如`ruby-graph`或`gruff`,提供更高级的功能,如图形可视化。 5. 示例代码学习: - 通过分析压缩包中的代码,可以了解如何在Ruby中实现这些算法,理解其实现细节和效率。 - 学习如何利用Ruby的迭代器...

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

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

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

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

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

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

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

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

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

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

    meshiterro

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

    适合度图

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

    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

Global site tag (gtag.js) - Google Analytics