Заставить обычный объект заговора в Grob для использования в grid.arrange
b <- ggplot(cars,aes(x=speed,y=dist))+geom_line()
grid.arrange(
b,
plot(cars),
ncol=1
)
дает мне следующую ошибку
Ошибка в gList(list(grobs = list(list(x = 0.5, y = 0.5, width = 1, height = 1): в "gList" разрешены только "grobs")
Давайте предположим, что мой второй график должен выйти из plot
функция. Как бы преобразовать этот вывод в grob
-подобный объект, так что он играет с grid.arrange
?
1 ответ
Решение
Вы можете попробовать с gridGraphics
library(gridGraphics)
grab_grob <- function(){
grid.echo()
grid.grab()
}
plot(cars)
g <- grab_grob()
b <- ggplot(cars,aes(x=speed,y=dist))+geom_line()
grid.arrange(
b,g,
ncol=1
)
или, в качестве альтернативы, используйте gridBase.