图形与虾

时间:2012-10-25 14:54:31

标签: ruby prawn

期待一个为大虾添加gtraphing功能的宝石,我发现this one但似乎过时了。那还有更活跃的宝石吗?

3 个答案:

答案 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生成的图表示例:

enter image description here

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