0

我很抱歉没有为这个问题生成伪数据,但我认为我面临的问题对于本网站上的大多数非新手来说都是基本的。我正在尝试创建一个循环,为 az 变量的每个值绘制 x 和 y 的散点图。

x=rnorm(n=50)
y=rnorm(n=50)
z<-rep(c(1,2,3,4,5),10)
dataset <-cbind(x,y,z)
Dataset<-as.data.frame(dataset)
attach(Dataset)
jpeg()
z <-Dataset$z[1:5]
for(i in 1:5) {
    y<-y[z==i]
    x <-x[z==i]
    ARMAXpath<-file.path("C:", "Desktop", paste("myplot_", z[i], ".jpg", sep="")) 
    jpeg(file = ARMAXpath)
    TheTitle = paste("Scatter Plots", z[i])
    plot.new()
    plot.window(xlim=c(0,1), ylim=c(5,10))
    plot(y,x)
    dev.off()
}
detach(Dataset)

无论我做什么,我都会得到同样的plot.window错误。我在有和没有附加的情况下运行了这段代码。我在有和没有的情况下运行它plot.window。我还将它移入和移出循环。

Error in plot.window(...) : need finite 'xlim' values
In addition: Warning messages:
1: In min(x) : no non-missing arguments to min; returning Inf
2: In max(x) : no non-missing arguments to max; returning -Inf
3: In min(x) : no non-missing arguments to min; returning Inf
4: In max(x) : no non-missing arguments to max; returning -Inf

我的问题是如何通过我的数据集(即区域)中的第三个变量生成两个时间序列的图,将输出写入文件夹,因为我在上面尝试做的很差?

4

2 回答 2

0

为什么不:将所有三个绘图调用合并为:

 plot(y,x, xlim=c(0,1), ylim=c(5,10))
于 2013-09-05T17:47:07.760 回答
0

一些替代代码,使用@DWin的评论:

x=rnorm(n=50)
y=rnorm(n=50)
z<-rep(c(1,2,3,4,5),10)
Dataset<-data.frame(x=x,y=y,z=z)

my.plot <- function(x,y,z){
    ARMAXpath<-file.path("C:", "Desktop", paste0("myplot_", z, ".jpg"))
    jpeg(file = ARMAXpath)
    plot(y,x, xlim=c(0,1), ylim=c(5,10))
    dev.off()
}

by(Dataset, Dataset$z, function(d) my.plot(d$x,d$y,unique(d$z)))
于 2013-09-06T01:32:06.683 回答