[R] auto.key in xyplot in conjunction with panel.text

Deepayan Sarkar deepayan.sarkar at gmail.com
Thu Jul 3 00:45:51 CEST 2008


On 7/2/08, David Afshartous <dafshartous at med.miami.edu> wrote:
>
>
>  All,
>
>  I can't seem to get auto.key to work properly in an xyplot that is employing
>  panel.text.  Specifically, I often change the default grouping colors then
>  use auto.key accordingly, but for some reason the same functionality isn't
>  working for this different type of plot.  Any help much appreciated.

You can't really expect it to work unless you go through
panel.superpose. Try this:

xyplot(Y ~ X, data = dat, lab = dat$ID,
       groups = Drug,
       auto.key = list(space = "top", text = c("Placebo", "Drug"),
                       points = FALSE, lines = TRUE),
       par.settings = list(superpose.line = list(col = c("red","black"))),
       panel = panel.superpose,
       panel.groups = function(x, y, lab, subscripts, col.line, ...){
           panel.text(x, y, labels = lab[subscripts], col = col.line)
       })

-Deepayan

>  Cheers,
>  David
>
>
>
>
>  library("lattice")
>  dat = data.frame( Y = c(rnorm(18,1), rnorm(18,3)), X = rep(c(1:18), 2),
>  ID = rep(c(1:18), 2), Drug = factor(rep(c("P", "D"), each = 18)) )
>  ## this plot correctly provides the key for the grouping color
>  xyplot(Y ~ X, data=dat, type="p",
>        panel=panel.superpose, groups=Drug,
>        col = rep(c("red", "black"), 18),
>        auto.key = list(space = "top",  text = c( "Placebo", "Drug"),
>        points = FALSE, lines = TRUE),
>  par.settings = list(superpose.line = list(col = c("red","black") ) ) )
>
>
>
>  ## this plot correctly uses ID's and colors instead of plotting symbols
>  xyplot(Y ~ X, data=dat, type="n", lab = dat$ID,
>        groups=Drug, col = rep(c("red", "black"), 18),
>        panel= function(x,y, lab, type, auto.key, ...){
>             panel.xyplot(x,y, type = type, ...)
>             panel.text(x,y, lab=lab,  ...)
>    }
>  )
>
>  ## when trying to get the correct key as in the first plot
>  ## for the second plot things don't work.
>  ## I've tried several alterations to the syntax but no luck so far
>  xyplot(Y ~ X, data=dat, type="n", lab = dat$ID,
>        groups=Drug, col = rep(c("red", "black"), 18),
>        auto.key = list(space = "top",  text = c( "Placebo", "Drug"),
>        points = FALSE, lines = TRUE), par.settings = list(superpose.line =
>        list(col = c("red","black") ) )
>        panel= function(x,y, lab, type, ...){
>             panel.xyplot(x,y, type = type, ...)
>             panel.text(x,y, lab=lab,  ...)
>    }
>  )
>
>  ## another unsuccessful attempt:
>  xyplot(Y ~ X, data=dat, type="n", lab = dat$ID,
>        groups=Drug, col = rep(c("red", "black"), 18),
>        auto.key = list(space = "top",  text = c( "Placebo", "Drug"),
>        points = FALSE, lines = TRUE), par.settings = list(superpose.line =
>        list(col = c("red","black") ) )
>        panel= function(x,y, lab, type, auto.key ...){
>             panel.xyplot(x,y, type = type, auto.key = auto.key ...)
>             panel.text(x,y, lab=lab,  ...)
>    }
>  )
>
>  ______________________________________________
>  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.
>



More information about the R-help mailing list