亲爱的StackOverflow社区,
多年来,我一直在社会上寻求帮助。谢谢你这么说。现在我有一个问题要问:
我试图在一个列表中存储多个ggplot图,其中包含一个for循环。代码运行时没有错误,但只有最后一个图形中的数据被打印出来。
# Preparation
metr_var <- c("schneehoehe",
"wind_richtung",
"wind_vmittel",
"wind_vmax",
"temp",
"luftfeuchtigkeit"
)
# Generating List
plot_list <- list()
# For Loop
for (j in metr_var) {
p = ggplot(data = NULL, aes_string(x = arfang$arfang, y = arfang[, j]))
+ geom_boxplot() + ylab(j) + theme_bw()
dev.new()
plot_list[[which(metr_var == j)]] = print(p)
}现在,如果我运行这段代码,则只打印来自最后一个 ggplot命令的aes。所以每个图都用不同的y轴打印,但是数据保持不变。
我知道这与ggplot和aes有关,但我不知道问题出在哪里。我搜索了整个StackOverflow和其他建议(打印、dev.new等)。帮不上忙。
谢谢你能帮我。Stan
发布于 2015-06-26 08:45:53
你可以这样做:
library(ggplot2)
vars <- c("mpg", "wt", "qsec")
plots <- list()
for (var in vars) {
plots[[var]] <- ggplot(data=mtcars, aes_string(x=var)) + geom_histogram()
}那么l将是一个具有3 ggplot的列表。如果您想要显示它们,只需:
plotshttps://stackoverflow.com/questions/31068432
复制相似问题