在地块上循环播放 [英] Looping over plots

查看:311
本文介绍了在地块上循环播放的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

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



当使用变量的数量时,这是有效的:

  for(i in names(df)[19:20]){
png(paste(i,png,sep =。),width = 400 ,高度= 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, (gfplot(df)+ geom_histogram(aes_string(png,sep =。),width = 400,height = 400) (x = i),binwidth = 0.4)+ 
theme_bw())
dev.off()
}

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

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



有什么想法?

解决方案

names(df)是一个未命名的向量,所以选择它没有意义



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


I try to generate a lot of plots and save them in separate files. Each plot should be based on a variable from a dataframe.

This works when using the numbers of the variables:

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()
}

However, it doesn't work if I'm using variable names instead of the ordered number. I don't understand why.

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()
}

I get the following error message at the latter question (if it's exactly the same variable as in the first example):

"Error: StatBin requires a continuous x variable the x variable is discrete. Perhaps you want stat="count"? "

Any ideas?

解决方案

names(df) is an unnamed vector, so it doesn't make sense to select named values from that vector.

What you're looking for is

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()
}

这篇关于在地块上循环播放的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆