为什么在绘制循环生成的图表列表时所有图表都相同?

时间:2017-10-03 14:59:29

标签: r

下面的代码应生成名为plist的列表中包含的五个不同的图。调用grid.arrange时为什么所有的图都相同?变量df在循环中的每次迭代中都会发生变化。

library(gridExtra)
plist <- list()
for (i in 1:5){
    df <- data.frame(x=1:1000, y=rnorm(10))
    plist[[i]] <- qplot(df$y, geom="histogram")
}
do.call("grid.arrange", c(plist, ncol=2))

2 个答案:

答案 0 :(得分:0)

我不知道,但问题在于qplot,因为这可以制作不同的情节:

library(gridExtra)
plist <- list()
for (i in 1:5){
  df <- data.frame(x=1:1000, y=rnorm(10))
  plist[[i]] <- #qplot(df$y, geom="histogram")
    ggplot(df, aes(x = y))+geom_histogram()
}
do.call("grid.arrange", c(plist, ncol=2))

答案 1 :(得分:0)

我也没有回答,但这也适用于qplot

library(gridExtra)
library(ggplot2)

plist <- list()

for (i in 1:5) {
  df <- data.frame(x = 1:1000, y = rnorm(10))
  plist[[i]] <- qplot(y, data = df, geom = "histogram")
}

do.call("grid.arrange", c(plist, ncol=2))