【发布时间】:2018-07-20 20:18:30
【问题描述】:
我正在尝试在 for 循环中使用 ggplot2 在网格上绘制多个图,然后是 grid.arrange。但之后所有的情节都是一样的。
library(ggplot2)
library(grid)
test = data.frame(matrix(rnorm(320), ncol=16 ))
names(test) = sapply(1:16, function(x) paste0("var_",as.character(x)))
plotlist = list()
for (i in 1:(dim(test)[2]-1)){
plotlist[[i]] = ggplot(test) +
geom_point(aes(get(x=names(test)[dim(test)[2]]), y=get(names(test)[i])))
}
pdf("output.pdf")
do.call(grid.arrange, list(grobs=plotlist, nrow=3))
dev.off(4)
运行此代码时,似乎 get() 调用仅在 grid.arrange 调用时进行评估,因此图中的所有 y 向量都与“var_15”相同。有没有办法强制立即进行评估,以便我得到 15 个不同的地块?
谢谢!
【问题讨论】:
标签: r ggplot2 visualization grid-layout