我想将几张图放入grid.arrange函数中。但是,我并不总是事先知道网格中将要包含多少个图形,并且想避免必须始终通过代码来更改每个grid.arrange函数。
gg1 <- ggplot(mtcars, aes(cyl)) + geom_bar()
gg2 <- ggplot(mpg, aes(class, hwy)) + geom_bar(stat = "identity")
gg3 <- ggplot(mpg, aes(hwy)) + geom_area(stat = "bin")
grid.test <- grid.arrange(gg1,gg2,gg3)
我已经尝试粘贴这些项目。
grid.arrange(paste("gg", 1:3, sep= ""))
我还尝试将它们放入列表中并进行解析,但是无法在grid.arrange中获得未定义的数量。特别是当grid.arrange仅在您抓取元素时才接受它,不允许多重选择。
ggtest <- list(gg1,gg2,gg3)
grid.test <- grid.arrange(ggtest[[1:3]])
返回下标错误
ggtest <- list(gg1,gg2,gg3)
grid.test <- grid.arrange(ggtest[1:3])
仅返回“ gList”错误中允许的“怪胎”。
这里有任何帮助的人,也许我看错了方向,还是应该使用另一个功能?
答案 0 :(得分:3)
library(gridExtra)
library(ggplot2)
gg1 <- ggplot(mtcars, aes(cyl)) + geom_bar()
gg2 <- ggplot(mpg, aes(class, hwy)) + geom_bar(stat = "identity")
gg3 <- ggplot(mpg, aes(hwy)) + geom_area(stat = "bin")
ggtest <- mget(paste0("gg", 1:3))
do.call(grid.arrange, ggtest)
#> `stat_bin()` using `bins = 30`. Pick better value with `binwidth`.