我正在使用以下命令在R中绘制一些数据:
jj = ts(read.table("overlap.txt"))
pdf(file = "plot.pdf")
plot(jj, ylab="", main="")
dev.off()
结果如下:
我遇到的问题是我得到的pdf文件非常大(25Mb)。是一种减小文件大小的方法吗? JPEG不是一个选项,因为我需要一个矢量图形。
答案 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文件,例如Pdftk
和qpdf
。我在animation
包中有两个包装器,但您可能希望直接使用命令行。
答案 4 :(得分:1)
很难说没看到情节的样子 - 发布截图?
我怀疑它有很多非常详细的线条,大部分信息可能都不可见 - 许多东西重叠或非常小的细节。尝试在一个维度或另一个维度中细化数据。我怀疑你会丢失可见的信息。