r-在不使用外部工具的情况下使用大型数据集时,我可以减少knitR/ggplot2中的pdf文件大小吗



我有很多大的ish文件,我正在将它们读取到rmarkdown文档中的R中,进行清理,并使用ggplot2进行打印。

大多数文件的大小约为3Mb,数据行数约为80000行,但有些文件的大小为12Mb,数据列数为318406行(Time、Extension、Force)。

    Time,Extension,Load
    (sec),(mm),(N)
    "0.00000","0.00000","-4.95665"
    "0.00200","0.00000","-4.95677"
    "0.00400","0.00000","-4.95691"
    "0.10400","-0.00040","-4.95423"

处理数据并创建pdf文件需要一段时间(这没关系),但pdf文件现在的大小接近6Mb,其中大约有16个图(实际上有3个图是使用ggplot2的分面图)。

我知道pdf为我的数据集中的每个数据点都包含一个线段,因此随着图形数量的增加,文件中的数据量也会增加。/然而,我并不认为需要深入到pdf文档中查看该级别的详细信息,而且随着它接近10Mb,我在发送电子邮件时会遇到问题。

如果我使用pdf2ps将pdf转换为ps,然后使用ps2pdf返回到pdf,我会得到一个大约是原始pdf大小的1/3的文件,并且质量看起来很棒。

因此,R/knitR/ggplot2中是否有一种方法可以在不使用外部工具压缩pdf文件的情况下减少pdf图像中绘制的点数?(或者以某种方式优化生成的pdf?)

干杯Pete

您可以尝试通过添加将图形设备从pdf更改为png

knitr::opts_chunk$set(dev = 'png')

到您的设置块。

或者你可以将其添加到你的输出标题中

output:
  pdf_document:
    dev: png

尝试不同的设备(png,jpg)。也许这会改变的大小

最新更新