我从一个非常大的向量(数量级为10^7)创建了一个图。使用通常的方法将绘制保存为pdf文件的问题在于,pdf文件会变成一个非常大的文件,大约10MB左右。我不希望一个简单的时间序列图像有这么大的尺寸。如何保存这个图像,使得大小小到最多100千字节?
baptiste的建议采用png格式制作光栅图是正确的。与Jdbaba建议复制开放设备不同,我建议您直接调用png()
设备。这样可以节省很多时间,因为您不需要先在单独的设备窗口中加载绘图,如果数据集很大,则加载时间可能会很长。
#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
请参阅?png
,以获取PNG设备的其他设置。
如果想绘制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()
记得根据需要更改宽度和高度的值。
png
这样的光栅格式,并且具有良好的分辨率,将产生更轻的输出文件。 - baptiste