【发布时间】:2017-05-12 11:40:28
【问题描述】:
所以我有一个数据框 tmp,每一列都遵循不同的分布。我想要做的是在 pdf 中绘制直方图,每页一个直方图。但为什么我得到三倍相同的直方图?
当我输入 g11 时,我得到直方图 g13,但是当我在 pdf 中绘制直方图时,而不是 3 个相同的页面(直方图 1-3),我得到 3 个不同的页面,上面有相同的直方图。
可能是 ggplot 使用指针工作,并且由于第二个 for 循环,它绘制了 g1i?
有没有办法重写我的代码? (这个例子是从我的问题中简化的)
tmp <- data.frame(x=rnorm(n=20, mean=0, sd=1),
y=rnorm(n=20, mean=10, sd=2),
z=rnorm(n=20, mean=40, sd=5))
for (i in 1:3){
assign(paste("g1", i, sep=""),ggplot(tmp,aes(x=get(colnames(tmp)[i]))) + geom_histogram(binwidth=1))
}
pdf("/pathto/plot.pdf")
for(i in 1:3){
#i <- 1
grid.arrange(get(paste("g1", 1, sep="")), get(paste("g1", 2, sep="")), get(paste("g1", 3, sep="")))
}
dev.off()
【问题讨论】: