【问题标题】:Looping over plots循环绘图
【发布时间】:2023-04-02 15:20:01
【问题描述】:

我尝试生成很多图并将它们保存在单独的文件中。每个图都应基于数据框中的一个变量。

这在使用变量的数量时有效:

for(i in names(df)[19:20]) {
   png(paste(i, "png", sep = "."), width = 400, height = 400)
   print(ggplot(df) + geom_histogram(aes_string(x= i), binwidth= 0.4) +   
   theme_bw())
   dev.off()
}

但是,如果我使用变量名而不是有序数字,则它不起作用。我不明白为什么。

for(i in names(df)[c("varname1","varname2","varname3")]) {
   png(paste(i, "png", sep = "."), width = 400, height = 400)
   print(ggplot(df) + geom_histogram(aes_string(x= i), binwidth= 0.4) +            
   theme_bw())
   dev.off()
}

我在后一个问题中收到以下错误消息(如果它与第一个示例中的变量完全相同):

“错误:StatBin 需要一个连续的 x 变量,而 x 变量是离散的。也许你想要 stat="count"?”

有什么想法吗?

【问题讨论】:

  • 使用for( i in c("varname1","varname2","varname3")){ }

标签: r loops ggplot2


【解决方案1】:

names(df) 是一个未命名的向量,因此从该向量中选择命名值是没有意义的。

你要找的是

for(i in c("varname1","varname2","varname3")) {
   png(paste(i, "png", sep = "."), width = 400, height = 400)
   print(ggplot(df) + geom_histogram(aes_string(x= i), binwidth= 0.4) +            
   theme_bw())
   dev.off()
}

【讨论】:

    猜你喜欢
    • 2021-08-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-03-26
    • 2020-11-08
    • 1970-01-01
    相关资源
    最近更新 更多