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'.

-Deepayan

Thanks again for this wonderful package,
Rainer

______________________________________________
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