首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >处理ggplot2和for循环

处理ggplot2和for循环
EN

Stack Overflow用户
提问于 2015-06-26 08:26:01
回答 1查看 89关注 0票数 0

亲爱的StackOverflow社区,

多年来,我一直在社会上寻求帮助。谢谢你这么说。现在我有一个问题要问:

我试图在一个列表中存储多个ggplot图,其中包含一个for循环。代码运行时没有错误,但只有最后一个图形中的数据被打印出来。

代码语言:javascript
复制
# 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

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-06-26 08:45:53

你可以这样做:

代码语言:javascript
复制
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的列表。如果您想要显示它们,只需:

代码语言:javascript
复制
plots
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31068432

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档