有没有办法将grob直接保存到rasterGrob?

时间:2016-04-28 20:02:27

标签: r pdf ggplot2 rasterizing grob

我正在绘制几个ggplot2个对象,并将它们放在grid.arrange内,以打电话给一个< pdf'设备。我发现如果我首先光栅化这些图,那么PDF的执行速度会提高十亿倍(生成速度更快,渲染速度更快)。因此,在并行的dlply循环中,我使用ggsaveggplot2写为PNG,然后使用readPNG将其读回{{1转换将其返回rasterGrobdlplydlply放入grobs列表中,grid.arrange然后将其绘制到PDF设备。

其中一些似乎不实用,所以总的来说,有更好的方法吗?但是真正让我感到困惑的是将PNG写入磁盘,而我所做的就是将它们读回来。有没有办法将grob直接保存到rasterGrob?

plot.list <- dlply( ... {
        ggsave(filename= fname
               ,plot= my.plot
               ,device= "png" 
               ,scale = 1, width= 1.1, height= 2.125, units = "in" 
               ,dpi = dpi)

        # return it as a list of rasters
        rasterGrob(readPNG( source= fname, info= TRUE))
}

1 个答案:

答案 0 :(得分:0)

我最终使用了@MrFlick建议的@Yang的In R, how to plot into a memory buffer instead of a file?答案中概述的Cairo图形设备