2011-07-27 5 views
3

PDFに大規模なggplotを印刷すると、RSessionメモリがバルーンになることが予想されますか?私は約72メガバイトのggplot2オブジェクトを持っています。私のRSessionはPDFに印刷するときに2ギガ以上になります。これは期待されていますか?パフォーマンスを最適化する方法はありますか?私は結果として得られるPDFが〜25メガバイトであることが分かりました。私はそれらを縮小するために外部プログラムを使用しなければなりません(視覚的損失なしで50kb!)。低品質のグラフィックスでPDFに印刷する方法はありますか?あるいは、私が考えていない印刷やggplotのパラメータがありますか?ggplot2 - プロットバルーンメモリを印刷する

答えて

7

大きなデータセットの場合、ggplotを組み込む前にデータを前処理すると便利です(ggplotが同じ計算を提供する場合でも)。それはあなたが後から追加したいのstatやGEOM予測することはできないので、そこに物事を最適化することは非常に困難である(分割適用コンバイン戦略メモリintermediat爆発につながることができます:

ggplot非常に一般的である必要があります要件)。 OTOH、あなたはあなたが望むものを知っており、それに応じて事前に計算することができます。

大きなpdfは、オーバープロットが多いこと、または見えないほど小さいオブジェクトを生成していることを示します。いずれの場合も、適切な要約統計量(例:散布図の代わりにヘビビンまたはボックスプロット)を適用することで、多くを得ることができます。

あなたのしていることの詳細がなくても、私たちはあなたにもっと話すことはできないと思います。ですから、最小限の例を作成して、作成している圧縮されたプロットをアップロードしてください。

+0

あなたが正しいです、この場合、私はオーバープロットと見えない小さすぎるオブジェクトの両方を持っています。ありがとう! – SFun28

3

質問の2番目の部分に取り組むRは、PDFを最適化しようとしません。あなたが多くのポイントをオーバープロットしている場合、これはちょっとばかげた動作に終わります。 qpdfを使用してPDFを後処理することができます。

最初の質問に偶然に対処すると、中規模のデータセットのプロットは多くのメモリを消費するように見えますが、それは単に私の経験に過ぎません。他の人はそれがそうであるかどうかについての理由以上に多くの意見を持っているかもしれない。

0

pngのようなビットマップ形式で保存すると、ファイルサイズを大幅に減らすことができます。これは、最終画像の特定の用途にのみ適切であり、特にpdfできる限り拡大することはできないことに注意してください。しかし、最終的な画像サイズが分かっていれば、それは有用な方法となり得る。

+0

私の知る限り、レンダリング時間は短縮されません。また、PDFの後処理は、ベクトル化を失うことなく、同様のファイルサイズに縮小します。 –

+0

True、レンダリング時間を短縮しません。私はPDFの後処理を試していないが、役に立つと思う。私のニーズにはpngを使って十分でした。 – Aaron

+0

それがすべて必要な場合は、PNG(またはその他のビットマップ形式)に直接移動することは1つ少ないステップです。 – Aaron

関連する問題