Есть ли способ сохранить гроб непосредственно в растре Grob?
Я рисую несколько ggplot2
объекты и размещение их на grid.arrange
внутри звонка на устройство pdf. Я обнаружил, что PDF работает примерно в миллиард раз лучше (генерирует быстрее, рендерит быстрее), если я сначала растеризую графики. Так что внутри параллели dlply
кругом я пользуюсь ggsave
написать ggplot2
как PNG, затем с помощью readPNG
чтобы прочитать это обратно и rasterGrob
конвертировать вернуть его в dlply
, dlply
помещает это в список grobs
который grid.arrange
затем рисует на устройство PDF.
Отчасти это кажется громоздким, так что, в общем, есть ли лучший подход? Но что меня действительно беспокоит, так это запись PNG на диск, когда все, что я с ними делаю, это считываю их обратно. Есть ли способ сохранить гроб непосредственно в 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))
}
0 ответов
В итоге я использовал графическое устройство Cairo, как описано в @Yang In R, как построить график в буфер памяти вместо файла? ответ, предложенный @MrFlick