On Wed, Nov 3, 2010 at 4:25 PM, Rainer Hurling <rhur...@gwdg.de> wrote: > Am 03.11.2010 10:23 (UTC+1) schrieb Deepayan Sarkar: >> >> On Wed, Nov 3, 2010 at 4:11 AM, Dennis Murphy<djmu...@gmail.com> wrote: >>> >>> Hi: >>> >>> I don't know why, but it seems that in >>> >>> bwplot(voice.part ~ height, data = singer, >>> main = "NOT THE RIGHT ORDER OF COLOURS\n'yellow' 'blue' 'green' 'red' >>> 'pink' 'violet' 'brown' 'gold'", >>> fill=c("yellow","blue","green","red","pink","violet","brown","gold")) >>> >>> the assignment of colors is offset by 3: >>> >>> Levels: Bass 2 Bass 1 Tenor 2 Tenor 1 Alto 2 Alto 1 Soprano 2 Soprano 1 >>> fillcol<- c("yellow","blue","green","red","pink","violet","brown","gold") >>> >>> In the above plot, >>> >>> yellow -> Bass 2 (1) >>> blue -> Tenor 1 (4) >>> green -> Soprano 2 (7) >>> red -> Bass 1 (10 mod 8 = 2) >>> pink -> Alto 2 (13 mod 8 = 5) >>> etc. >>> >>> It's certainly curious. >> >> Curious indeed. It turns out that because of the way this was >> implemented, every 11th color was used, so you end up with the order >> >>> sel.cols<- >>> c("yellow","blue","green","red","pink","violet","brown","gold") >>> rep(sel.cols, 100) [ seq(1, by = 11, length.out = 8) ] >> >> [1] "yellow" "red" "brown" "blue" "pink" "gold" "green" >> "violet" >> >> It's easy to fix this so that we get the expected order, and I will do >> so for the next release. > > Thank you for this proposal. We are looking forward for the next release :-) > > We frequently have to colour selected boxes to be able to compare special > cases over different panels. > >> Having said that, it should be noted that any vectorization behaviour >> in lattice panel functions is a consequence of implementation and not >> guaranteed by design (although certainly useful in many situations). >> In particular, it is risky to depend on vectorization in multipanel >> plots, because the vectorization starts afresh in each panel for >> whatever data subset happens to be in that panel, and there may be no >> relation between the colors and the original data. > > Thank you for the warning. > >> One alternative is to use panel.superpose with panel.groups=panel.bwplot: >> >> bwplot(voice.part ~ height, data = singer, groups = voice.part, panel >> = panel.superpose, panel.groups = panel.bwplot, fill = sel.cols) > > This indeed works nice 'as a workaround'.
Actually, I would reiterate that this is the "right solution" and the it's other fix that qualifies as a quick workaround (especially if you are considering comparing things across multiple panels). -Deepayan ______________________________________________ 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.