Hello, I've been looking for a solution to this problem for some time now but I seem unable to solve it.. so this is the case: I want to plot 4 time series in the same graph using xyplot(). When I do this with xyplot(mydata[,2]+mydata[,3]+mydata[,4]+mydata[,5] ~ mydata[,1], data = mydata, type = "l", auto.key = list(space="right", lines = T, points = F), par.settings = simpleTheme(lty = c(1,2,3,4)) ) I get a graph where all lines are "maximized" to cover the entire y- scale width. I.e., they are use their own scale independent of each other (my data has some columns that are one magnitude smaller than the others). How do I force them all to use the same y-scale? I found this thread: http://n4.nabble.com/superimposing-xyplots-on-same-scale-td905525.html, but I'm not really sure what is going on there. Any ideas? /J
Duncan Mackay
2010-Jan-04 07:50 UTC
[R] xyplot: several plots in one creates y-scale problem
Hi As you did not provide an example as per posting guide here is one dataset cobbled from zoo help. It is fairly rough but is optioned up to give you an idea. The legend takes is cues from trellis.par.set() and you can set this for the plot by using par settings It makes use of strip.left which gives you more space for the panel area rather than taken up by horizontal strips. require(zoo) require(lattice z1 <- matrix(rep(1:12,4)+round(rnorm(48),1),12,4, dimnames=list(1:12,paste("C",1:4) ) ) z2 <-zoo(z1, as.Date("2003-01-01") + 0:11) xyplot(z2, auto.key = list(text=paste(names(z2)), points = FALSE, lines = T, space = "bottom"), par.settings = list(superpose.line = list(col = rep(1,7, lty = rep(1, 7)) )), strip.left = strip.custom(factor.levels = paste("C",1:4), par.strip.text = list(cex = 0.75), horizontal = FALSE), strip = F, scales=list(x=list(at=as.numeric(as.Date("2003-01-01") + 0:11)[seq(1,12,2)], labels=paste(format(c(as.Date("2003-01-01") + 0:11)[seq(1,12,2)],"%d %b"))), y = list(alternating = T, limits = list(c(0,12),c(0, 12), c(0, 12), c(0, 15)) , relation = "free", rot = 0) ) , col=1 ) HTH Duncan Mackay Department of Agronomy and Soil Science University of New England ARMIDALE NSW 2351 Email Home: mackay at northnet.com.au At 09:09 3/01/2010, you wrote:>Hello, > >I've been looking for a solution to this problem for some time now but >I seem unable to solve it.. so this is the case: I want to plot 4 time >series in the same graph using xyplot(). When I do this with > >xyplot(mydata[,2]+mydata[,3]+mydata[,4]+mydata[,5] ~ mydata[,1], data >= mydata, > type = "l", > auto.key = list(space="right", lines = T, points = F), > par.settings = simpleTheme(lty = c(1,2,3,4)) > ) > >I get a graph where all lines are "maximized" to cover the entire y- >scale width. I.e., they are use their own scale independent of each >other (my data has some columns that are one magnitude smaller than >the others). How do I force them all to use the same y-scale? > >I found this thread: >http://n4.nabble.com/superimposing-xyplots-on-same-scale-td905525.html, >but I'm not really sure what is going on there. Any ideas? > >/J > >______________________________________________ >R-help at r-project.org mailing list >https://stat.ethz.ch/mailman/listinfo/r-help >PLEASE do read the posting guide http://www.R-project.org/posting-guide.html >and provide commented, minimal, self-contained, reproducible code.