Есть ли способ сохранить гроб непосредственно в растре 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

Другие вопросы по тегам