2012-10-25 11 views

答えて

9

Prawnのグラフ作成にはまったくアクティブなものはありませんが、Gruffは高度な設定が可能で、あらゆる種類のグラフを作成できるアクティブな宝石です。

実際には、prawn-graphは基本的に荒れ狂いのラッパーです!

gruffを使用して必要なチャートとグラフを生成し、それをPrawnドキュメントの画像として埋め込むことをお勧めします。

ので、コードは次のようになります:私はエビに依存し、rMagickとのImageMagickに依存しないPrawnChartsと呼ばれるエビグラフライブラリを作成し

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

画像をディスクに書き込むとに渡すのではなく、バイトエビを渡す方法がありますエビに? – eggie5

+0

@ eggie5できません。 –

2

を。 rMagickとImageMagickは、厄介な依存関係(大きなファイル、インストールするのは苦しいなど)で、PrawnChartsのようなネイティブソリューションと比較して大きなファイルを作成します。ここで

は私がPrawnChartsで生成されたグラフの一例である:

enter image description here

はプル要求を提出すること自由に感じなさい - 私はそれらをマージします。それをディスクに保存せずに画像を挿入するには海老とぶっきらぼう使用についてeggie5 @

2

は、それはかなり簡単です:

image StringIO.new(g.to_blob)