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

Can I reduce pdf file size in knitR/ggplot2 when using a large dataset without using external tools?

我有一些大文件,我正在 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"

翻阅数据并创建 pdf 文件需要一些时间(没关系),但 PDF 文件现在大小接近 6Mb,其中包含大约 16 个图表(实际上 3 个图表是分面图,使用ggplot2).

我知道 pdf 包含数据集中每个数据点的线段,因此随着图表数量的增加,文件中的数据量也会增加。/但是,我没有预见到要求深入查看 pdf 文档以查看详细程度,当它接近 10Mb 时,我将无法通过电子邮件发送它)。

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

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

干杯 皮特

您可以尝试通过添加

将图形设备从 pdf 更改为 png
knitr::opts_chunk$set(dev = 'png')

到你的设置块。

或者您可以将其添加到您的输出中 header

output:
  pdf_document:
    dev: png

尝试不同的设备(png、jpg)。也许这会改变尺寸