4

Rでggplot2を使用して一連の線グラフを作成しており、それらをjpegとして保存したいと思います。ただし、グラフを拡大または高解像度にして、グラフを表示するときに拡大しても、それほどピクセル化されていないように見せたいと思います。

コードスニペットは次のとおりです。

library("ggplot2")

p <- ggplot(df1)

p <- p +
  geom_line(aes(time, ee_amt, colour="ee_amt"), size = 2) + 
  geom_point(aes(time, ee_amt, colour="ee_amt"), size = 2)

jpeg("G:\\Auto Parts\\sample.jpg")
  print(p)
dev.off()
4

3 に答える 3

10

必要なものを使用ggsaveして指定しdpiます。

library(ggplot2)
df <- data.frame(x = 1:10, y = rnorm(10))
my_plot <- ggplot(df, aes(x,y)) + geom_point(size = 4)
ggsave(my_plot, file="sample.jpg", dpi = 600)
于 2012-09-04T23:01:31.847 に答える
4

プロットをPostScriptとして保存し、ImageMagick convertを使用して目的の密度でJPEGに変換します。例:

ggsave(my_plot, file="foo.ps")

次に、300 dpiのJPEGバージョンを作成するには:

$ convert foo.ps -density 300 foo.jpeg

必要な解像度とImageMagickがサポートするビットマップ形式でレンダリングできる小さなファイルができます。

これがWeb用の場合は、SVGまたはPDF形式への変換を検討してください。

$ convert foo.ps foo.svg

SVGは非常に簡単に埋め込むことができますiframe。これにより、高解像度のビットマップと比較して、小さなファイルサイズでスムーズなズームが容易になります。

于 2012-09-04T23:05:18.653 に答える
0

png()はお勧めしません。ggsave()またはjpeg()の方が適しています。png()で解像度を直接制御するには、次を使用します。

library("ggplot2")

p <- ggplot(df1)

p <- p +
geom_line(aes(time, ee_amt, colour="ee_amt"), size = 2) + 
geom_point(aes(time, ee_amt, colour="ee_amt"), size = 2)

W = 1680
H = 1050

png("test.png", width = W, height = H)
print(p)
graphics.off()

同じことがjpeg()でも機能するはずです。

于 2012-09-05T08:24:32.163 に答える