Thanks Gabor and Baptiste, Both your suggestions give me the results I was looking for! Robert
> CC: r-help@r-project.org > From: [EMAIL PROTECTED] > To: [EMAIL PROTECTED] > Subject: Re: [R] Lattice: groups and no groups with panel.superpose > Date: Sat, 15 Nov 2008 16:59:31 +0000 > > Hi, > > I think the following code should do what you want, > > > xyplot(yvar~year|week,data=df,layout = c(4, 5), > type='p', > groups = temp , > panel = function(x, y, ...) { > panel.superpose(x, y, ...) > panel.abline(lm(y~x)) > }, > panel.groups = function(x, y, ..., lty) { > panel.xyplot(x, y, ..., lty = lty) > panel.abline(lm(y~x), lty=3, ...) > }) > > Hope this helps, > > baptiste > > On 15 Nov 2008, at 14:25, Robert Buitenwerf wrote: > >> >> Dear R listers, >> >> I am trying to create a lattice plot with independent regression >> lines per group >> for each panel, plus one overall regression line per panel. I >> succeed in having >> the separate regression lines for each group per panel, but I can't >> figure out >> how to add the overall regression line over all groups. I have >> learnt a lot from >> the list, but I can't find an example for what I want to do... >> >> with the following example data (from another post): >> years<-2000:2006 >> weeks<-1:20 >> yr<-rep(years,rep(length(weeks)*6,length(years))) >> wk<-rep(weeks,rep(6,length(weeks))) >> temp<-rep(4:9,length(years)*length(weeks)) >> yvar<-round(rnorm(length(years)*length(weeks)*6,mean=30,sd=4),0) >> xvar<-(rnorm(length(years)*length(weeks)*6)+5)/10 >> df<-data.frame(year=yr,week=wk,temp=temp, yvar=yvar, >> xvar=xvar) >> >> I get the regression lines per group for each panel using: >> >> xyplot(yvar~year|week,data=df,layout = c(4, 5), >> type='p', >> groups = temp , >> panel = panel.superpose, >> panel.groups = function(x, y, ..., lty) { >> panel.xyplot(x, y, ..., lty = lty) >> panel.abline(lm(y~x), lty=3, ...) >> }) >> >> And obviously the overall regression lines with: >> >> xyplot(yvar~year|week,data=df,layout = c(4, 5), >> type='p', >> panel = function(x, y, ...) { >> panel.xyplot(x, y, ...) >> panel.abline(lm(y~x)) >> }) >> >> Any advice on how to "merge" the output from the two above graphs >> would be >> greatly appreciated! >> >> >> Kind regards, >> >> Robert Buitenwerf >> Ecologist >> SAEON >> South Africa >> _________________________________________________________________ >> [[elided Hotmail spam]] >> >> ______________________________________________ >> R-help@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. > > _____________________________ > > Baptiste AuguiƩ > > School of Physics > University of Exeter > Stocker Road, > Exeter, Devon, > EX4 4QL, UK > > Phone: +44 1392 264187 > > http://newton.ex.ac.uk/research/emag > ______________________________ > _________________________________________________________________ [[elided Hotmail spam]] ______________________________________________ R-help@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.