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

时间:2015-02-12 13:43:27

标签: 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"

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

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

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

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

干杯 皮特

1 个答案:

答案 0 :(得分:14)

您可以尝试通过添加

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

到您的设置块。

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

output:
  pdf_document:
    dev: png

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