期待一个为大虾添加gtraphing功能的宝石,我发现this one但似乎过时了。那还有更活跃的宝石吗?
答案 0 :(得分:9)
在Prawn中直接绘制图形没有什么活动,但是Gruff是一个活跃的宝石,它是高度可配置的,可以让你制作各种图形。
实际上,prawn-graph基本上是一个粗暴的包装!
我的建议是使用粗暴来生成所需的图表和图形,然后将它们作为图像嵌入到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
答案 1 :(得分:4)
@ eggie5关于使用粗暴的大虾插入图像而不将其保存到磁盘,这很简单:
image StringIO.new(g.to_blob)
答案 2 :(得分:3)
我创建了一个名为PrawnCharts的Prawn Graphing库,它只依赖于Prawn并且不依赖于rMagick和ImageMagick。与像PrawnCharts这样的原生解决方案相比,rMagick和ImageMagick是烦人的依赖(大文件,安装很痛苦等)并创建更大的文件。
以下是我使用PrawnCharts生成的图表示例:
随意提交拉取请求 - 我将合并它们。