On 3/24/06, [EMAIL PROTECTED] <[EMAIL PROTECTED]> wrote: > (Moved from r-devel to r-bugs) > > On 3/24/2006 5:03 AM, Antonio, Fabio Di Narzo wrote: > > Hi all. > > There's a bug in plot.acf, when plotting acf for multivariate time series. > > Here a reproducible example: > > > > X <- rnorm(1000) > > Y <- -X + rnorm(1000, sd=0.6) > > Z <- cbind(X,Y) > > > > In > > acf(Z) > > cross-correlation plot y-axis is limited to 0-1. But: > > acf(Z, ylim=c(-1,1)) > > shows that there was a negative correlation, that was cut away in the > > previous plot. > > > > I've seen the error is trivial. There's something like: > > > > for(each pair of univariate time series) { > > if(is.null(ylim)) { > > ...#set ylim properly > > } > > ... > > } > > > > in plot.acf code, so that in the first iteration the ylim par is properly > > set to about c(0,1), but in > > subsequent interations, ylim is no more NULL, and the old, unproper ylim > > specification > > remains. > > Thanks for noticing this. It's easy to fix, but before I do, I'd like > an opinion on the proper fix. Should all the plots use the same ylim, > or in the case where it is unspecified, should they each choose their > own? I can see arguments for both possibilities. >
Not sure if its worth considering this but plot.zoo allows ylim to be a pair or it can be a list of pairs to specify different ylims for each plot or it can be a labelled list to specify just those indicated with the unspecified ones being defaulted. Also if can be a set of data points in which case its range it used. z <- zoo(cbind(a = 1:10, b = 11:20, c = 21:30)) plot(z, ylim = list(c(1,20), c(1,40), c(1,60))) plot(z, ylim = c(1,40)) plot(z, ylim = list(b = c(1,40))) # a and c get default and b gets indicated one plot(z, ylim = list(c(1,40), a = c(1, 10))) # default is c(1,40) and a is c(1,10) plot(z, ylim = list(1:40, a = 1:10)) # same ______________________________________________ R-devel@r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/r-devel