do.call 使用 r 中的选项来排列 ggplot 列表
do.call with options in r to arrange ggplot list
我的虚拟数据为:
x=1:7
y=1:7
df = data.frame(x=x,y=y)
bp <- vector("list", length = 4)
for (i in 1:4) {
bp[[i]] <- ggplot(df,aes(x,y))+geom_point()
}
我的 ggplot 对象在一个名为 bp
的列表中,我可以用它生成一个四图网格:
figure <- ggarrange(bp[[1]], bp[[2]], bp[[3]], bp[[4]],
labels = c("A", "B", "C", "D"),
ncol = 2, nrow = 2)
现在,我不想输入 bp[[1]]..bp[[4]]
而是想使用类似
的东西
do.call(ggarrange, bp)
就像您对函数 grid.arrange
所做的那样 do.call(grid.arrange, bp)
。 do.call(grid.arrange, bp)
不显示面板标签所以我想使用 ggarrange
并且仍然想传递这些参数:
labels = c("A", "B", "C", "D"),
ncol = 2, nrow = 2
在这种情况下如何使用 do.call
?有更好的方法吗?
选项是将它放在命名的 list
中并连接 list
元素
library(ggpubr)
do.call(ggarrange, c(bp, list(labels = c("A", "B", "C", "D"),
ncol = 2, nrow = 2) ))
这里,。 OP 的要求是将 do.call
与 ggarrange
一起使用。当然不用do.call
也可以
我的虚拟数据为:
x=1:7
y=1:7
df = data.frame(x=x,y=y)
bp <- vector("list", length = 4)
for (i in 1:4) {
bp[[i]] <- ggplot(df,aes(x,y))+geom_point()
}
我的 ggplot 对象在一个名为 bp
的列表中,我可以用它生成一个四图网格:
figure <- ggarrange(bp[[1]], bp[[2]], bp[[3]], bp[[4]],
labels = c("A", "B", "C", "D"),
ncol = 2, nrow = 2)
现在,我不想输入 bp[[1]]..bp[[4]]
而是想使用类似
do.call(ggarrange, bp)
就像您对函数 grid.arrange
所做的那样 do.call(grid.arrange, bp)
。 do.call(grid.arrange, bp)
不显示面板标签所以我想使用 ggarrange
并且仍然想传递这些参数:
labels = c("A", "B", "C", "D"),
ncol = 2, nrow = 2
在这种情况下如何使用 do.call
?有更好的方法吗?
选项是将它放在命名的 list
中并连接 list
元素
library(ggpubr)
do.call(ggarrange, c(bp, list(labels = c("A", "B", "C", "D"),
ncol = 2, nrow = 2) ))
这里,。 OP 的要求是将 do.call
与 ggarrange
一起使用。当然不用do.call