From: David Wyllie <David.Wyllie_at_ndm.ox.ac.uk>

Date: Fri, 18 Jun 2010 08:45:26 +0100

# Deepayan Sarkar code from: http://www.mail-archive.com/r-help@r-project.org/msg39654.html x <- as.numeric(x)

}

auto.key=TRUE)

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. Received on Fri 18 Jun 2010 - 07:47:52 GMT

Date: Fri, 18 Jun 2010 08:45:26 +0100

Hi

is it possible to fit a trend line (or some other panel function) through each of multiple data series plotted on the same graph? Specifically, while one can do something like
xyplot(a+b+c~x)

which plots three series, a,b & c, but can one automatically fit lines through each of them?

Thank you for any advice. Here is an example:

w=NULL, df, spar = NULL, cv = FALSE, lwd=plot.line$lwd, lty=plot.line$lty,col, col.line=plot.line$col, type, horizontal=FALSE,... ){

# Deepayan Sarkar code from: http://www.mail-archive.com/r-help@r-project.org/msg39654.html x <- as.numeric(x)

y <- as.numeric(y)

ok <- is.finite(x) & is.finite(y)

if (sum(ok) < 1) return() if (!missing(col)) { if (missing(col.line)) col.line <- col } plot.line <- trellis.par.get("plot.line") if (horizontal) { spline <- smooth.spline(y[ok], x[ok], w=w, df=df, spar = spar, cv = cv, ...) panel.lines(x = spline$y, y = spline$x, col = col.line, lty = lty, lwd = lwd, ...) } else { spline <- smooth.spline(x[ok], y[ok], w=w, df=df, spar = spar, cv = cv, ...) panel.lines(x = spline$x, y = spline$y, col = col.line, lty = lty, lwd = lwd, ...) } }

# a composite function combining the xyplot and smooth.spline functions

panel.composite<-function(x,y,groups, subscripts, ...) { panel.xyplot(x,y,...) panel.smooth.spline(x,y,...)

}

# generate mock data; this comprises three data series, a,b,c with means of about 5,35, and 105.

test <- data.frame(

a = runif(100, min=0, max=10), b = 30+runif(100, min=0, max=10), c = 100+runif(100, min=0, max=10), x = 1:100)

# illustrate data

xyplot(a + b + c ~ x, data = test, type = "p", auto.key=TRUE)

# plot with fits .. but actually only one fit

xyplot(

a + b + c ~ x,

panel=panel.composite, data = test, type = "p",

auto.key=TRUE)

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. Received on Fri 18 Jun 2010 - 07:47:52 GMT

Archive maintained by Robert King, hosted by
the discipline of
statistics at the
University of Newcastle,
Australia.

Archive generated by hypermail 2.2.0, at Fri 18 Jun 2010 - 11:30:33 GMT.

*
Mailing list information is available at https://stat.ethz.ch/mailman/listinfo/r-help.
Please read the posting
guide before posting to the list.
*