R:并排显示函数内生成的可变数量的ggplots

gal*_*zra 0 r ggplot2

我有一个函数DisplayPlot,它将字符串列表作为输入(指的是数据帧中的列).例如,如果list_string = c("string1","string2"),循环使用list_string的元素,我想并排显示两个ggplots.

到目前为止,我在我的函数中所做的是将ggplots存储到列表中:

for (i in 1:length(list_string){
p = ggplot(data=d, aes(x=d[,1], y=as.numeric(levels(d[,(i+1)]))[d[,(i+1)]], fill=d[,1])) +
  geom_bar(stat="identity") +
    guides(fill=FALSE) +
      labs(x = Y) + labs(y = paste("CP",list_X[i],"_per_",Y,sep = "")) 
graph[[length(graph) + 1]] <- p }
Run Code Online (Sandbox Code Playgroud)

并返回:

  return(list(graph=graph, along with some other information))
Run Code Online (Sandbox Code Playgroud)

问题是,如果我想使用类似的函数grid.arrange,我需要手动编写图的名称:grid.arrange(p1,p2,ncol=2)而在我的情况下,这个数字可能会有所不同,并存储在列表中(grid.arrange不喜欢的格式).

非常感谢您的帮助,克莱门特

bap*_*ste 10

grid.arrange(grobs = graph)
Run Code Online (Sandbox Code Playgroud)

或者(历史上,并不总是有一个grobs论点),

do.call(grid.arrange, graph)
Run Code Online (Sandbox Code Playgroud)