减少R中的绘图的pdf文件大小

时间:2011-12-15 14:02:22

标签: r plot

我正在使用以下命令在R中绘制一些数据:

jj = ts(read.table("overlap.txt"))
pdf(file = "plot.pdf")
plot(jj, ylab="", main="")
dev.off()

结果如下:

enter image description here

我遇到的问题是我得到的pdf文件非常大(25Mb)。是一种减小文件大小的方法吗? JPEG不是一个选项,因为我需要一个矢量图形。

5 个答案:

答案 0 :(得分:9)

看一下tools::compactPDF - 您需要安装qpdf或ghostscript,但它可以对pdf文件大小产生巨大影响。

如果从磁盘读取PDF文件,GostScript质量有三个选项(gs_quality),如R help file所示:

  • printer(300dpi)
  • ebook(150dpi)
  • screen(72dpi)

默认值为none。例如,要将文件夹mypdfs/中的所有PDF转换为ebook质量,请使用命令

tools::compactPDF('mypdfs/', gs_quality='ebook')

答案 1 :(得分:6)

你正在画很多线条或点。诸如pdf,ps,eps,svg等的矢量图像格式保持关于所有那些增加复杂性的点,线或其他项的逻辑信息,其随着点数的增加而转换为尺寸和绘制时间。通常,矢量图像在许多方面是最好的,最紧凑,最佳缩放和最高质量的再现。但是,如果图形元素的数量变得非常大,那么通常最好采用光栅图像格式,例如png。当你切换到光栅时,最好很好地了解你想要的尺寸图像,包括像素和打印测量等,以便产生最佳图像。

对于来自其他方向的信息,光栅图像太大,请参阅此answer

答案 2 :(得分:4)

减少文件大小的一种方法是减少您拥有的值的数量。假设您有一个名为df的数据框:

# take sample of data from dataframe
sampleNo = 10000
sampleData <- df[sample(nrow(df), sampleNo), ]

我认为R中唯一的另一种选择是产生非向量。在R之外,您可以使用Acrobat Professional(不是免费的)来优化pdf。这可以极大地减小文件大小。

答案 3 :(得分:4)

您使用的是哪个版本的R?在R 2.14.0中,pdf()有一个参数compress来支持压缩。我不确定它对你有多大帮助,但还有其他工具来压缩PDF文件,例如Pdftkqpdf。我在animation包中有两个包装器,但您可能希望直接使用命令行。

答案 4 :(得分:1)

很难说没看到情节的样子 - 发布截图?

我怀疑它有很多非常详细的线条,大部分信息可能都不可见 - 许多东西重叠或非常小的细节。尝试在一个维度或另一个维度中细化数据。我怀疑你会丢失可见的信息。