[R] Colour filling in panel.bwplot from lattice
David Winsemius
dwinsemius at comcast.net
Tue Nov 2 20:08:09 CET 2010
On Nov 2, 2010, at 2:32 PM, Rainer Hurling wrote:
> On 02.11.2010 19:08 (UTC+1), David Winsemius wrote:
>> On Nov 2, 2010, at 1:19 PM, Rainer Hurling wrote:
>>
>>> Inspired by colouring the dots of box-whisker plots I am trying to
>>> also fill the boxes (rectangles) with different colours. This seems
>>> not to work as I expected.
>>>
>>> Looking at the help page of panel.bwplot it says: 'fill - color to
>>> fill the boxplot'. Obviously it is only intended to fill all boxes
>>> with only one colour?
>>>
>>> Nevertheless the following example shows, that 'fill' from
>>> panel.bwplot is able to work with more than one colour. But this
>>> only
>>> works with one colour or multiples of 5 colours:
>>>
>>>
>>> -------------------------------------------------
>>> bp1 <- bwplot(voice.part ~ height, data = singer, main="1 color
>>> works",
>>> panel = function(...) {
>>> panel.bwplot(col=c("yellow"),
>>> fill=c("yellow"), ...)
>>> })
>>>
>>> bp2 <- bwplot(voice.part ~ height, data = singer, main = "3 colors
>>> do
>>> NOT work",
>>> panel = function(...) {
>>> panel.bwplot(col=c("yellow","blue","green"),
>>> fill=c("yellow","blue","green"), ...)
>>> })
>>>
>>> bp3 <- bwplot(voice.part ~ height, data = singer, main = "5 colors
>>> do
>>> work",
>>> panel = function(...) {
>>> panel.bwplot(col=c("yellow","blue","green","pink","red"),
>>> fill=c("yellow","blue","green","pink","red"), ...)
>>> })
>>>
>>> plot(bp1, split=c(1,1,1,3))
>>> plot(bp2, split=c(1,2,1,3), newpage=FALSE)
>>> plot(bp3, split=c(1,3,1,3), newpage=FALSE)
>>> -------------------------------------------------
>>>
>>> Is there any chance to use more than one filling colour correctly?
>>
>
> Thanks for answering.
>
>> You have eight boxes to fill and 8 dots to color. You can either
>> supply
>> 8 distinct colors or you can supply some lesser number and they
>> will be
>> recycled across the entire 8 boxes and dots. What you cannot do ( and
>> expect to see the dots against the fill background) is plot the
>> dots as
>> the same colors as the fill.
>
> It was not my intention to get the dots coloured in the same colour
> as the boxes. Instead I am looking for a method to fill the boxes
> with a predefined set of different colours (from a color vector). As
> far as I can see this is only possible for one colour and multitudes
> of five colours.
Huh? My example used 4 colors. It should have worked with eight colors
as well. There are eight groups and
>
> The dots should remain uncoloured ...
Then leave out the col= argument (assuming uncolored means black.)
>
>> This will let you see all colors of dots and fill with only 4 colors
>> because I set it up so there was no two identical colors in teh
>> sequence
>> of dots and fill during hte reculing:
>>
>> bp4 <- bwplot(voice.part ~ height, data = singer, main = "5 colors do
>> work",
>> panel = function(...) {
>> panel.bwplot(col=rev(c("yellow","blue","green","pink")),
>> fill=c("yellow","blue","green","pink"), ...)
>> })
>
> In your example you can see that the dots colors are painted in the
> right (reversed) order, the boxes are painted as sequence
> c("yellow","pink","green","blue") instead of
> c("yellow","blue","green","pink").
>
> I do not understand how to turn over a given order and with a given
> count of colours to the boxes.
See if this example using selected colors() works to make it clearer:
> colors()[(2:9)*10]
[1] "bisque1" "blue4" "burlywood3" "chartreuse3" "coral3"
[6] "cyan2" "darkgray" "darkorange"
bp5 <- bwplot(voice.part ~ height, data = singer, main = "5 colors do
work",
panel = function(...) {
panel.grid(v = -1, h = 0)
panel.bwplot(fill=colors()[(2:9)*10], ...)
})
bp5
(Needed to avoid the first colors() because they were mostly variants
of "white".
> colors()[1:8]
[1] "white" "aliceblue" "antiquewhite" "antiquewhite1"
[5] "antiquewhite2" "antiquewhite3" "antiquewhite4" "aquamarine"
>
>
>>> Thanks in advance,
>>> Rainer Hurling
>>
--
David Winsemius, MD
West Hartford, CT
More information about the R-help
mailing list