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]])但是我需要一个更通用的解决方案。有什么想法吗?
3 回答
长风秋雁
TA贡献1757条经验 获得超7个赞
我知道这个问题是使用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
在此处了解有关拼凑而成的软件包的更多信息
- 3 回答
- 0 关注
- 2693 浏览
添加回答
举报
0/150
提交
取消