我正在使用此website的multiplot
功能
此函数将不定数量的图形作为参数并将它们绘制在一起。通过下面的代码,我可以将2个列中的4个图绘制在一起。
library(ggplot2)
n = 4
p = lapply(1:n, function(i) {
ggplot(data.frame(x = 1:10,y = rep(i,10)), aes(x = x, y = y)) +
geom_point()
})
multiplot(p[[1]],p[[2]],p[[3]],p[[4]],cols = 2)
如果未确定地块n
的数量怎么办?
我已经尝试过
multiplot(p,cols = 2)
do.call(multiplot, list(p,cols = 2))
但是它没有给出我想要的结果
答案 0 :(得分:2)
也许是multiplot(plotlist = p)
!
欢呼
答案 1 :(得分:2)
使用第二个选项,您也关闭了
do.call(multiplot, c(p, cols = 2))
自此开始工作
length(list(p, cols = 2))
# [1] 2
length(c(p, cols = 2))
# [1] 5
也就是说,list(p, cols = 2)
列出了两个组成部分的列表:列表p
和整数2,而您想要的是通过添加p
来扩展cols = 2
,我们需要。 (也许有些不太明显,但?c
的标题确实的确是说将值合并为向量或列表 。)