> How can I modify the example below to put a dot at the mean of each violin
> plot? I assume I use panel.points but that's as far as I can go.
>
>      bwplot(voice.part ~ height, singer,
>             panel = function(..., box.ratio) {
>                 panel.violin(..., col = "transparent",
>                              varwidth = FALSE, box.ratio = box.ratio)
>                 #panel.points(mean(x.....))
>             } )

Well, I answered my own question and learned something of the dark art of
lattice plots in the process. If this is an inane way to go about this, then
somebody please say so.

panel.mean <- function(x,y,...){
  y <- as.numeric(y)
  y.unique <- sort(unique(y))
  for(Y in y.unique) {
    X <- x[y == Y]
    if (!length(X)) next
    mean.value <- list(x = mean(X), y = Y)
    do.call("lpoints", c(mean.value, pch = 20))
  }
}

bwplot(voice.part ~ height, singer,
            panel = function(...) {
              panel.violin(...,col = "transparent")
              panel.mean(...)
              })

______________________________________________
R-help@stat.math.ethz.ch mailing list
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide! http://www.R-project.org/posting-guide.html

Reply via email to