寻找一个可以为虾添加绘图功能的宝石,我找到了这个,但它似乎有点过时了。有没有更活跃的宝石呢?
问问题
2074 次
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 回答