使用ggplot2从用户定义函数的输出创建多重绘图

时间:2018-02-23 01:32:27

标签: r

我创建了一个自动创建ggplot列图的函数。但是,当我调用该函数时,它会输出一个列表:

Plotter<- function (df,title){
    Plots <-ggplot2(df,aes(x=mpg,y=wt))+geom_col()+ggtitle(title)
    print(Plots)
    return(Plots)
}

plot1 <- Plotter(data,"test")
plot2 <- Plotter(data,"test2")

当我致电ggarrange(plot1,plot2,ncol=2)时, 我收到一条错误消息,指出ggarrange只接受ggplotglist,但您有一个列表?

我检查了plot1的班级,这是一个列表? 我也尝试将它转换为grob,但这不起作用。有人可以让我知道我错过了什么吗?

1 个答案:

答案 0 :(得分:1)

这对我有用

library(gridExtra)
Plotter<- function (df,title){
  Plots <-ggplot(df,aes(x=mpg,y=wt))+geom_col()+ggtitle(title)
  print(Plots)
  return(Plots)
}
data = data.frame(mpg = 1:10, wt = 1:10)

plot1 <- Plotter(data,"test")
plot2 <- Plotter(data,"test2")
grid.arrange(plot1,plot2,ncol=2)