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

PJP*_*PJP 12 r ggplot2 knitr

我有一些大型文件,我在rmarkdown文档中阅读R,清理并使用ggplot2进行绘图.

大多数文件大小约为3Mb,大约有80,000行数据,但有些文件大小为12Mb,有318,406行数据(时间,扩展,强制).

    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"
Run Code Online (Sandbox Code Playgroud)

这需要一段时间来浏览数据并创建pdf文件(没关系),但PDF文件现在大约有6Mb,其中有大约16个图形(事实上3个图是使用ggplot2的构面图).

据我所知,pdf包含了我的数据集中每个数据点的线段,因此当我增加图形数量时,文件中的数据量会增加.但是,我并不认为需要深入研究pdf文档,以查看详细程度,我将遇到问题,因为它接近10Mb时通过电子邮件发送.

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

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

干杯皮特

Ren*_*rop 16

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

knitr::opts_chunk$set(dev = 'png')
Run Code Online (Sandbox Code Playgroud)

你的设置块.

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

output:
  pdf_document:
    dev: png
Run Code Online (Sandbox Code Playgroud)

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

  • `knitr :: opts_chunk $ set(dev ='jpeg')`不是'jpg'在我的机器上工作 (2认同)