2011-12-15 2 views
7

にプロットのpdfファイルのサイズを削減:は、私は次のコマンドを使用してRで一部のデータをプロットしていますR

jj = ts(read.table("overlap.txt")) 
pdf(file = "plot.pdf") 
plot(jj, ylab="", main="") 
dev.off() 

結果は次のようになります。

enter image description here

私が持っている問題です私が得るpdfファイルはかなり大きい(25Mb)。ファイルサイズを減らす方法ですか?私はベクトルグラフィックが必要なので、JPEGはオプションではありません。

+0

あなたは、いくつかの未知の(大きな?)数の線分をプロットしました。一般に、pdfは何かをエンコードする最悪の方法です。 'cairo()'でepsやsvgを生成しようとしましたか? –

+0

特に気分が悪いように見えません。最初のプロットは少し詳細に見えます。要約(jj)とは何ですか?それは4e + 05になっていますか? – Spacedman

+0

多くの反復値を持つ変数の場合、繰り返し値を落とし、変更点の時間座標を保存する 'rle'を持つ解をまとめることができるかもしれませんが、それはかなり複雑になります。変数を連続的に変化させるために何かを保存する –

答えて

6

多くの線や点が描画されています。 pdf、ps、eps、svgなどのベクター画像形式は、点数が増えるにつれてサイズや描画時間に変換される複雑さを増す点、線などのすべての項目に関する論理情報を保持します。一般的に、ベクトル画像は、さまざまな方法で最も優れています。最もコンパクトで、スケールが最高で、最高品質の再生です。しかし、グラフィック要素の数が非常に多くなると、pngなどのラスターイメージ形式に行くのが最善です。ラスターに切り替えるときは、最適な画像を生成するために、どのサイズの画像をピクセル単位で印刷するか、印刷測定値などの任意のサイズの画像を作成することをお勧めします。

他の方向からの情報については、大きすぎるラスタイメージはanswerを参照してください。

1

プロットがどのように見えるのかわからないのは難しいです - スクリーンショットを投稿しますか?

私は非常に詳細な線がたくさんあると思うし、ほとんどの情報は目に見えないかもしれません。 1つの次元または別の次元でデータを間引いてみてください。目に見える情報が失われることはないと思います。

+0

私はプロットを追加しました。 – alex

+1

また、オーバープロットを減らすためのpdfs用の後処理ツールもあります。 –

4

ファイルサイズを小さくする1つの方法は、所有している値の数を減らすことです。あなたはdfと呼ばれるデータフレームを持っていると仮定すると:

# take sample of data from dataframe 
sampleNo = 10000 
sampleData <- df[sample(nrow(df), sampleNo), ] 

私はR内の他の唯一の選択肢は、非ベクトルを生成することだと思います。 Rの外では、pdfを最適化するためにAcrobat Professional(無料ではありません)を使用することができます。これにより、ファイルサイズが大幅に減少する可能性があります。

+0

等間隔のサンプル番号を得ることは素晴らしいことです。あなたは頭か尾だけを取る。 –

4

お使いのRのバージョンは? R 2.14.0では、pdf()に圧縮をサポートする引数compressがあります。どのくらい助けてくれるのかよく分かりませんが、Pdftkqpdfなど、PDFファイルを圧縮するためのツールもあります。 animationパッケージには2つのラッパーがありますが、コマンドラインを直接使用することもできます。

+0

圧縮があまり役に立たない。そこには単純なアルゴリズムがいくつかあります。それを変更することはできません。セットを等間隔でサンプリングすることはおそらく大部分を助けるでしょう。 –

9

tools::compactPDFをご覧ください。qpdfまたはghostscriptのいずれかをインストールする必要がありますが、pdfファイルのサイズに大きな違いがあります。

+0

これについて例を挙げてください。 tools :: compactPDF(ファイル名、qpdf = Sys.getenv( "R_QPDF"、 "qpdf")、gs_cmd = Sys.getenv( "R_GSCMD"、 "")、gs_quality = "screen"、gs_extras =文字列)、ratio = 0.2) 'が失敗するためです。 - - Debian 8.5に必要なすべてのツールがインストールされています。余分なものをインポートする必要がありますか? - - 私は今この答えをスタブと感じています。 –

関連する問題