我在画几个ggplot2
对象并将它们放在 grid.arrange
上在对“pdf”设备的调用中。我发现如果我先对绘图进行光栅化,PDF 的性能会提高大约 10 亿倍(生成速度更快,渲染速度更快)。所以里面平行dlply
循环,我正在使用 ggsave
写 ggplot2
作为 PNG,然后使用 readPNG
重新阅读和 rasterGrob
将其转换为 dlply
. dlply
将其放入 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))
}
最佳答案
我最终使用了 @Yang 的 In R, how to plot into a memory buffer instead of a file? 中概述的开罗图形设备@MrFlick 建议的答案
关于r - 有没有办法将 grob 直接保存到 rasterGrob?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36924457/