5

寻找一个可以为虾添加绘图功能的宝石,我找到了这个,但它似乎有点过时了。有没有更活跃的宝石呢?

4

3 回答 3

9

直接在 Prawn 中绘图没有什么非常活跃的,但是Gruff是一个高度可配置的活跃 gem,可以让你制作各种图表。

事实上,prawn-graph 基本上是 gruff 的包装器!

我的建议是使用 gruff 生成所需的图表和图形,然后将它们作为图像嵌入到 Prawn 文档中。

所以代码看起来像这样:

g = Gruff::Line.new(400)
g.title = "Transparent Background"
g.theme = {
  :colors => ['black', 'grey'],
  :marker_color => 'grey',
  :font_color => 'black',
  :background_colors => 'transparent'
}
g.labels = {
  0 => '5/6',
  1 => '5/15',
  2 => '5/24',
  3 => '5/30',
}
g.data(:apples, [-1, 0, 4, -4])
g.data(:peaches, [10, 8, 6, 3])
g.write(path_to_save)

Prawn::Document.generate("graphed-pdf.pdf") do
    text "The image will go right below this line of text."
    image "#{path_to_save}"
end
于 2012-11-19T09:14:26.923 回答
4

@eggie5 关于使用 gruff 和 prawn 插入图像而不将其保存到磁盘,这很简单:

image StringIO.new(g.to_blob)
于 2014-04-23T22:56:18.040 回答
3

我创建了一个名为PrawnCharts的虾图形库,它只依赖于 Prawn,不依赖于 rMagick 和 ImageMagick。rMagick 和 ImageMagick 是令人讨厌的依赖项(大文件,安装起来很痛苦等),与像 PrawnCharts 这样的原生解决方案相比,它们会创建更大的文件。

这是我使用 PrawnCharts 生成的图表示例:

在此处输入图像描述

随意提交拉取请求 - 我将合并它们。

于 2013-12-17T18:48:45.423 回答