博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Don’t Worry.Be Scruffy.
阅读量:7123 次
发布时间:2019-06-28

本文共 3666 字,大约阅读时间需要 12 分钟。

Scruffy是什么?

Scruffy是一个用来生成图表的ruby库,它的功能非常强大,可以用它来做web开发,在页面上输出多媒体数据。
 
Scruffy的主要特性包括:
  • 基于 SVG
    Scruffy 基于 SVG 技术来生成图表 . 这也使得Scruffy具备SVG的许多优点,譬如文件的大小与图形的复杂程度有关,而与图形的具体尺寸无关。
  • Mix-n-Match Graphs
    对于Scruffy生成的图表不局限于单一的图表类型(线,柱状,区域等)。你可以对每一个数据集指定一个不同的类型
  • 快照呈递
    你可以任意的多次输出同一个Scruffy图表,或者是修改每一次输出图表的设置(数据、颜色,甚至图表的尺寸和图标类型)。
  • 可扩展性
    Scruffy具有很强的可扩展性。可以通过仅仅几行代码来添加新的图表类型或者主题。  如果你需要更多的图像控制功能,也可以自定义输出,生成数据等等内容。
安装
sudo gem install scruffy

实例:

 
 
graph = Scruffy::Graph.new graph.title = "Favourite Snacks" graph.renderer = Scruffy::Renderers::Pie.new graph.add :pie, '', {
'Apple' => 20, 'Banana' => 100, 'Orange' => 70, 'Taco' => 30 } graph.render :to => "pie_test.svg" graph.render :width => 300, :height => 200, :to => "pie_test.png", :as => 'png'

 
 
graph = Scruffy::Graph.new graph.title = "Sample Line Graph" graph.renderer = Scruffy::Renderers::Standard.new graph.add :line, 'Example', [20, 100, 70, 30, 106] graph.render :to => "line_test.svg" graph.render :width => 300, :height => 200, :to => "line_test.png", :as => 'png'

 
 
graph = Scruffy::Graph.new graph.title = "Sample Line Graph" graph.renderer = Scruffy::Renderers::Standard.new graph.add :line, 'Example', [20, 100, 70, 30, 106] graph.render :to => "line_test.svg" graph.render :width => 300, :height => 200, :to => "line_test.png", :as => 'png'

 
 
graph = Scruffy::Graph.new graph.title = "Long-term Comparisons" graph.value_formatter = Scruffy::Formatters::Currency.new( :special_negatives => true, :negative_color => '#ff7777') graph.renderer = Scruffy::Renderers::Split.new( :split_label => 'Northeastern (Top) / Central (Bottom)') graph.add :area, 'Jeff', [20, -5, 100, 70, 30, 106, 203, 100, 50, 203, 289, 20], :category => :top graph.add :area, 'Jerry', [-10, 70, 20, 102, 201, 26, 30, 106, 203, 100, 50, 39], :category => :top graph.add :bar, 'Jack', [30, 0, 49, 29, 100, 203, 70, 20, 102, 201, 26, 130], :category => :bottom graph.add :line, 'Brasten', [42, 10, 75, 150, 130, 70, -10, -20, 50, 92, -21, 19], :categories => [:top, :bottom] graph.add :line, 'Jim', [-10, -20, 50, 92, -21, 56, 92, 84, 82, 100, 39, 120], :categories => [:top, :bottom] graph.point_markers = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'] graph.render :to => "split_test.svg" graph.render :width => 500, :to => "split_test.png", :as => 'png'

堆叠图
   
graph = Scruffy::Graph.new
    graph.title = "Comparative Agent Performance"
    graph.value_formatter = Scruffy::Formatters::Percentage.new(:precision => 0)
    graph.add :stacked do |stacked|
      stacked.add :bar, 'Jack', [30, 60, 49, 29, 100, 120]
      stacked.add :bar, 'Jill', [120, 240, 0, 100, 140, 20]
      stacked.add :bar, 'Hill', [10, 10, 90, 20, 40, 10]
    end
    graph.point_markers = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun']
    graph.render :to => "stacking_test.svg"
    graph.render  :width => 500, :to => "stacking_test.png", :as => 'png'

 
 
graph = Scruffy::Graph.new graph.title = "Some Kind of Information" graph.renderer = Scruffy::Renderers::Cubed.new graph.add :area, 'Jeff', [20, -5, 100, 70, 30, 106], :categories => [:top_left, :bottom_right] graph.add :area, 'Jerry', [-10, 70, 20, 102, 201, 26], :categories => [:bottom_left, :buttom_right] graph.add :bar, 'Jack', [30, 0, 49, 29, 100, 203], :categories => [:bottom_left, :top_right] graph.add :line, 'Brasten', [42, 10, 75, 150, 130, 70], :categories => [:top_right, :bottom_left] graph.add :line, 'Jim', [-10, -20, 50, 92, -21, 56], :categories => [:top_left, :bottom_right] graph.point_markers = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun'] graph.render :to => "multi_test.svg" graph.render :width => 500, :to => "multi_test.png", :as => 'png'
本文转自 fsjoy1983 51CTO博客,原文链接:http://blog.51cto.com/fsjoy/168842,如需转载请自行联系原作者
你可能感兴趣的文章
sscanf() 函数
查看>>
poj - 1061 青蛙的约会【扩展欧几里】
查看>>
通过调用firefox无法使用鼠标事件,解决办法
查看>>
1.站长工具网站地址
查看>>
centos redis 主从配置+哨兵模式
查看>>
typedef struct和struct 的区别 用途
查看>>
八皇后问题---详解---参考<<紫书>>
查看>>
P2325 [SCOI2005]王室联邦
查看>>
Request
查看>>
错题解析
查看>>
C++命名空间
查看>>
C语言文件操作
查看>>
session(会话)研究(一)基础
查看>>
DNS解析全过程分析
查看>>
scala基础篇-03 if与for
查看>>
http协议详解
查看>>
关于如何显示Jianshu图片的方案
查看>>
dataGridView显示刷新效率低
查看>>
静态化技术在蘑菇街的应用(转)
查看>>
基于云计算的IaaS、PaaS、SaaS三种服务模式的区别
查看>>