【发布时间】:2014-02-26 00:31:45
【问题描述】:
我想使用循环和 ggplot2 创建直方图网格。假设我有以下代码:
library(gridExtra)
library(ggplot2)
df<-matrix(NA,2000,5)
df[,1]<-rnorm(2000,1,1)
df[,2]<-rnorm(2000,2,1)
df[,3]<-rnorm(2000,3,1)
df[,4]<-rnorm(2000,4,1)
df[,5]<-rnorm(2000,5,1)
df<-data.frame(df)
out<-NULL
for (i in 1:5){
out[[i]]<-ggplot(df, aes(x=df[,i])) + geom_histogram(binwidth=.5)
}
grid.arrange(out[[1]],out[[2]],out[[3]],out[[4]],out[[5]], ncol=2)
请注意,所有图都出现了,但它们都具有相同的均值和形状,尽管已将 df 的每一列设置为具有不同的均值。
它似乎只绘制了最后一个图(out[[5]]),也就是说,循环似乎正在用 out[[5]] 重新分配所有的 out[[i]]。
我不知道为什么,有人可以帮忙吗?
【问题讨论】: