我有很多情节想把它们放在一页上,ggarrange在这方面做得很好,但是,似乎我必须将这些图中的每一个都放在列表中,将它们作为此 ggarrange 的输入存储在列表中。函数,除了直接把列表作为输入之外,具体见下:
一个天真的例子:

p1 <- ggplot(mtcars, aes(mpg, wt, colour = factor(cyl))) + 
  geom_point() 
p2 <- ggplot(mtcars, aes(mpg, wt, colour = factor(cyl))) + 
  geom_point() + facet_wrap( ~ cyl, ncol=2, scales = "free") + 
  guides(colour="none") + 
  theme() 
plot_list = list(p1,p2)  
我现在能做的:
ggarrange(p1,p2, widths = c(2,1), labels = c("a", "b")) 
我真正想做但没能做到的:
ggarrange(plot_list, widths = c(2,1), labels = c("a", "b")) 
有谁知道怎么做?如果地块数量很大并且可能会不时发生变化,这可以节省大量时间。
样本不是我的,复制自 here .
======== 编辑 ========
根据下面的优秀答案,至少有可用的选项:
1,查看已接受的答案,
2,这是来自一个删除的答案,我几乎没有修改 do.call(ggarrange, c(plot_list[1:2], widths = c(2, 1), labels = c("a", "b")))将参数传递给函数 ggarrange , c()为我工作,但 as.list()没有。

请您参考如下方法:

查看 ?ggarrange 的帮助文件.它有一个 plotlist=范围。只需在那里传递您的 list 。

ggarrange(plotlist=plot_list, widths = c(2,1), labels = c("a", "b")) 


评论关闭
IT干货网

微信公众号号:IT虾米 (左侧二维码扫一扫)欢迎添加!