From: Gabor Grothendieck <ggrothendieck_at_gmail.com>

Date: Sun, 20 Jul 2008 13:11:39 -0400

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 Sun 20 Jul 2008 - 17:14:55 GMT

Date: Sun, 20 Jul 2008 13:11:39 -0400

Try this:

library(lattice)

fancy.lm <- function(x, y, fit = TRUE, resid = TRUE){

model <- lm(y ~ x)

y.pred <- predict(model) # Compute residuals for plotting res.x <- as.vector(rbind(x, x, rep(NA,length(x)))) # NAs induce breaks in line res.y <- as.vector(rbind(y, y.pred, rep(NA,length(x)))) # after Fig5.1 of DAAG (clever!)

plot(xyplot(y ~ x, pch = 20)) trellis.focus() if (fit) panel.abline(model, col = "red") if (resid) panel.xyplot(res.x, res.y, col = "lightblue", type = "l") trellis.unfocus()

}

x <- jitter(c(1:10), factor = 5)

y <- jitter(c(1:10), factor = 10)

fancy.lm(x, y, fit = TRUE, resid = TRUE)

On Sun, Jul 20, 2008 at 12:44 PM, Bryan Hanson <hanson_at_depauw.edu> wrote:

> Hi All...

*>
**> I canıt seem to find an answer to this in the help pages, archives, or
**> Deepayanıs Lattice Book.
**>
**> I want to do a Lattice plot, and then update it, possibly more than once,
**> depending upon some logical options. Code below; it produces a second plot
**> page when the second update is called, from which I would infer that you
**> can't update the update or I'm not calling it correctly. I have a nagging
**> sense too that the "real" way to do this is with a non-standard use of
**> panel.superpose but I don't quite see how to do that from available
**> examples.
**>
**> TIF for any suggestions, Bryan
**>
**>
**> ************ Example: a function then, the call to the function
**>
**> fancy.lm <- function(x, y, fit = TRUE, resid = TRUE){
**>
**> model <- lm(y ~ x)
**>
**> y.pred <- predict(model) # Compute residuals for plotting
**> res.x <- as.vector(rbind(x, x, rep(NA,length(x)))) # NAs induce breaks in
**> line
**> res.y <- as.vector(rbind(y, y.pred, rep(NA,length(x)))) # after Fig 5.1 of
**> DAAG (clever!)
**>
**> p <- xyplot(y ~ x, pch = 20,
**> panel = function(...) {
**> panel.xyplot(...) # not strictly necessary if I understand correctly
**> })
**>
**> plot(p, more = TRUE)
**>
**> if (fit) {
**> plot(update(p, more = TRUE,
**> panel = function(...){
**> panel.xyplot(...)
**> panel.abline(model, col = "red")
**> }))}
**>
**> if (resid) {
**> plot(update(p, more = TRUE,
**> panel = function(...){
**> panel.xyplot(res.x, res.y, col = "lightblue", type = "l")
**> }))}
**>
**> }
**>
**> x <- jitter(c(1:10), factor = 5)
**> y <- jitter(c(1:10), factor = 10)
**> fancy.lm(x, y, fit = TRUE, resid = TRUE)
**>
**>
**> ************ Session Info
**>> sessionInfo()
**> R version 2.7.1 (2008-06-23)
**> i386-apple-darwin8.10.1
**>
**> locale:
**> en_US.UTF-8/en_US.UTF-8/C/C/en_US.UTF-8/en_US.UTF-8
**>
**> attached base packages:
**> [1] datasets grid grDevices graphics stats utils methods
**> [8] base
**>
**> other attached packages:
**> [1] fastICA_1.1-9 DescribeDisplay_0.1.3 ggplot_0.4.2
**> [4] RColorBrewer_1.0-2 reshape_0.8.0 MASS_7.2-42
**> [7] pcaPP_1.5 mvtnorm_0.9-0 hints_1.0.1-1
**> [10] mvoutlier_1.3 robustbase_0.2-8 lattice_0.17-8
**> [13] rggobi_2.1.9 RGtk2_2.12.5-3
**>
**> loaded via a namespace (and not attached):
**> [1] tools_2.7.1
**>
**>
**>
**>
**> ______________________________________________
**> 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.
**>
*

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 Sun 20 Jul 2008 - 17:14:55 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 Sun 20 Jul 2008 - 17:31:58 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.
*