On 11/3/05, Andy Bunn <[EMAIL PROTECTED]> wrote: > > 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, ...) { tmp <- tapply(x, y, FUN = mean) panel.points(tmp, seq(tmp), pch = 20, ...) } is more direct, but otherwise your solution is fine. -Deepayan > 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