如何使用grid.arrange排列变量列表?

library(ggplot2)

df <- data.frame(x=1:10, y=rnorm(10))

p1 <- ggplot(df, aes(x,y)) + geom_point()

plist <- list(p1,p1,p1,p1,p1)

# In my real example,a plot function will fit a ggplot to a list of datasets 

#and return a list of ggplots like the example above.

我想使用grid.arrange()中来安排地块gridExtra。


如果地块数量plist可变,我该怎么办?


这有效:  grid.arrange(plist[[1]],plist[[2]],plist[[3]],plist[[4]],plist[[5]])


但是我需要一个更通用的解决方案。有什么想法吗?


斯蒂芬大帝
浏览 2694回答 3
3回答

长风秋雁

我知道这个问题是使用gridExtra 包专门指出的,但是patchwork包中的wrap_plots函数是处理可变长度列表的好方法:library(ggplot2)# devtools::install_github("thomasp85/patchwork")library(patchwork)df <- data.frame(x=1:10, y=rnorm(10))p1 <- ggplot(df, aes(x,y)) + geom_point()plist <- list(p1,p1,p1,p1,p1)wrap_plots(plist)关于它的一个有用的事情是,您无需指定所需的列数,并且将旨在使列数和行数保持相等。例如:plist <- list(p1,p1,p1,p1,p1,p1,p1,p1,p1,p1,p1,p1,p1)wrap_plots(plist) # produces a 4 col x 4 row plot在此处了解有关拼凑而成的软件包的更多信息
打开App,查看更多内容
随时随地看视频慕课网APP