Re: [R] Lattice: groups and no groups with panel.superpose
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 + 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.
[R] Lattice: groups and no groups with panel.superpose
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.
Re: [R] Lattice: groups and no groups with panel.superpose
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 __ 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.