【问题标题】:How do I save plot images in R?如何在 R 中保存绘图图像?
【发布时间】:2013-07-02 20:12:10
【问题描述】:

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

【问题讨论】:

  • 标准答案是你可能不需要绘制所有这些点,但如果你认为你真的需要,那么像 png 这样具有良好分辨率的光栅格式会产生更轻的输出文件。
  • PDFs 会很大,因为它们使用矢量图形(这也使它们更适合调整大小、缩放等)。其他格式具有固定的分辨率,这将使它们的大小与点数无关。

标签: r plot save


【解决方案1】:

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

有关 png 设备的其他设置,请参阅 ?png

【讨论】:

    【解决方案2】:

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-08-25
      • 2013-12-06
      • 2022-01-13
      • 1970-01-01
      • 2014-07-28
      • 2017-08-11
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多