web-dev-qa-db-ja.com

Rでプロット画像を保存するにはどうすればよいですか?

非常に大きなベクトル(大きさ10 ^ 7)からプロットを作成しました。プロットをPDFファイルとして保存する通常の方法の問題は、PDFファイルが約10MBの非常に大きなファイルとして出力されることです。単純な時系列プロットにこのような大きなサイズは必要ありません。サイズが最大100キロバイトになるようにプロットを保存するにはどうすればよいですか?

15
user22119

baptisteは、ニースラスタータイププロットのpngの提案とともに正しい軌道に乗っています。オープンデバイスをコピーするというJdbabaの提案とは対照的に、png() deviceを直接呼び出すことをお勧めします。これにより、最初に別のデバイスウィンドウにプロットをロードする必要がなくなり、データセットが大きい場合にロードに時間がかかるため、多くの時間を節約できます。

#plotting of 1e+06 points
x <- rnorm(1000000)
y <- rnorm(1000000)
png("myplot.png", width=4, height=4, units="in", res=300)
par(mar=c(4,4,1,1))
plot(x,y,col=rgb(0,0,0,0.03), pch=".", cex=2)
dev.off() #only 129kb in size

enter image description here

見る ?png pngデバイスのその他の設定。

19
Marc in the box

Pngファイルをプロットする場合は、次のコマンドを使用します。

dev.copy(png,"myfile.png",width=8,height=6,units="in",res=100)
dev.off()

高品質のグラフを出力する場合は、res値をより高い値に変更できます。

ファイルをPDFとして保存する場合は、次のコマンドを使用します。

pdf("myfile.pdf",width=8,height=6)
dev.off()

必要に応じて、幅と高さの値を忘れずに変更してください。

5
Janesh Devkota