Hi:

I did this in ggplot2, which seemed easier than the approach you tried in
lattice's bwplot() - as far as I can tell, you want to plot the unique value
of v1b as a red dot in each boxplot. To that end,

ex <- data.frame(v1 = log(abs(rt(180, 3)) + 1),
                v2 = rep(c("2007", "2006", "2005"), 60),
                z  = rep(c("a", "b", "c", "d", "e", "f"), e = 30))
# the individual to be marked
ex2 <- data.frame(v1b = log(abs(rt(18, 3)) + 1),
                v2 = rep(c("2007", "2006", "2005"), 6),
                z  = rep(c("a", "b", "c", "d", "e", "f"), e = 3))
ex3 <- merge(ex, ex2, by=c("v2","z"))

library(ggplot2)
h <- ggplot(ex3)
h + geom_boxplot(aes(x = v2, y = v1)) +
    geom_point(aes(x = v2, y = v1b), shape = 17, colour = 'red', size = 3) +
    coord_flip() + facet_wrap( ~ z) +
    opts(panel.minor.grid = theme_blank()) + theme_bw()

It has a different look from bwplot(), but it appears to me that the points
are correctly located.

HTH,
Dennis

On Tue, Sep 28, 2010 at 12:29 AM, Christophe Bouffioux <
christophe....@gmail.com> wrote:

> Thanks for your help Peter
> but the red marks on boxplot do not correspond to ex2 dataframe
> actually, it reproduce on each panel the same marks
> that is to say the 3 first lines of ex2
> So this is not correct
>
>
> Christophe
>
> On Mon, Sep 27, 2010 at 6:18 PM, Peter Ehlers <ehl...@ucalgary.ca> wrote:
>
> > On 2010-09-27 4:54, Christophe Bouffioux wrote:
> >
> >> bwplot(v2 ~ v1 | z, data = ex3, layout=c(3,2),
> >>        pch = "|",
> >>        par.settings = list(
> >>        plot.symbol = list(alpha = 1, col = "transparent",cex = 1,pch =
> >> 20)),
> >>        panel = function(x, y){
> >>             panel.bwplot(x, y)
> >>             X<- tapply(ex3$v1b, ex3[,c(1,2)], max)
> >>             Y<- seq(length(unique(ex3[,c(1,2)])))
> >>             panel.points(X, Y, pch = 17, col = "red")
> >>             })
> >>
> >>
> > Perhaps this is what you're trying to achieve:
> >
> >
> >  bwplot(v2 ~ v1 | z, data = ex3, layout=c(3,2),
> >       panel = function(x, y){
> >            panel.bwplot(x, y, pch="|")
> >            X <- tapply(ex3$v1b, ex3[, 1:2], max)
> >            Y <- seq(nrow(unique(ex3[, 1:2])))
> >
> >            panel.points(X, Y, pch = 17, col = "red")
> >            })
> >
> > (I didn't see any need for your par.settings.)
> >
> > I'm not crazy about the way you define X,Y. I think
> > I would augment the data frame appropriately instead.
> >
> >  -Peter Ehlers
> >
>
>         [[alternative HTML version deleted]]
>
> ______________________________________________
> R-help@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.
>

        [[alternative HTML version deleted]]

______________________________________________
R-help@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.

Reply via email to