15

我从一个非常大的向量(大小为 10^7)创建了一个图。将绘图保存为 pdf 文件的常用方法的问题是 pdf 文件以大约 10MB 的非常大的文件出现。对于简单的时间序列图,我不想要这么大的尺寸。如何保存绘图以使其大小小到最多 100 千字节?

4

2 回答 2

21

baptiste 的建议是正确的,他们建议使用 png 来制作漂亮的光栅类型图。相对于jdbaba建议复制open device,我建议你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

在此处输入图像描述

参见?pngpng 设备的其他设置。

于 2013-07-04T19:48:12.233 回答
5

如果要绘制 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()

请记住根据需要更改宽度和高度值。

于 2013-07-04T19:10:32.193 回答