将常规绘图对象强制转换为Grob,以便在grid.arrange中使用

Cha*_*apo 11 plot r ggplot2 gridextra grob

b <- ggplot(cars,aes(x=speed,y=dist))+geom_line()
grid.arrange(
    b,
    plot(cars),
    ncol=1
)
Run Code Online (Sandbox Code Playgroud)

给我以下错误

gList中的错误(列表(grobs = list(list(x = 0.5,y = 0.5,width = 1,height = 1,:"gList"中只允许'grobs')

让我们假设我的第二个图必须从plot函数中出来.如何将该输出转换为类似grob对象,以便它可以很好地运行grid.arrange

bap*_*ste 10

你可以试试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
)
Run Code Online (Sandbox Code Playgroud)

或者,使用gridBase.