[R] 2d plotting and colours
Paul Murrell
p.murrell at auckland.ac.nz
Thu Apr 7 02:46:00 CEST 2005
Hi
Earl F. Glynn wrote:
> "Mulholland, Tom" <Tom.Mulholland at dpi.wa.gov.au> wrote in message
> news:33F91FB3FDF42E4180428AC66A5CF30B02D3BAB0 at afhex01.dpi.wa.gov.au...
>
>>Since I was only concentrating on colour issues and not on your specific
>
> problem I was just showing the possibilities.
>
>>Does this code help
>>
>>n <- 5
>>par(mfrow = c(2,2))
>>palette("default")
>>barplot(1:25,col = 1:25)
>>palette(rainbow(n))
>>barplot(1:25,col = 1:25)
>>palette(rgb((0:15)/15, g=0,b=0, names=paste("red",0:15,sep=".")))
>>barplot(1:25,col = 1:25)
>>
>>
>>require(cluster)
>>x <- runif(100) * 8 + 2
>>cl <- kmeans(x, n)
>>palette(rainbow(n))
>>plot(x, col = cl$cluster)
>>abline(h = cl$centers, lty = 2,col = "grey" )
>>palette(palette()[order(cl$centers)])
>>points(x,col = cl$cluster,pch = 20,cex = 0.4)
>
>
> Using Windows with R 2.0.1 this looks fine at first.
>
> But when I resize the graphic, copy the graphic to a metafile and paste it
> into Word, or go to an earlier graphic and come back using "History", the
> colors ae all messed up. It's as if only the last palette is being used for
> all four plots in the figure. Oddly, if I copy the graphic as a bitmap, the
> colors are preseved in the bitmap. Is this a quirk of my machine or does
> this happen for others?
>
> Is it possible that the Windows palette manager is being used (which is such
> about obsolete) and that true color graphics are not being used (which is
> the easist way to avoid headaches from the Windows palette manager)?
I think this is happening because the setting of the R graphics palette
is not being recorded on the R graphics display list. Any window
refresh will produce the effect.
Even worse, the R graphics palette is global to the R session, not
per-device, so simply recording the setting of the palette on the
(per-device) display list would only create a more subtle undesirable
effect.
A possible solution is to make a per-device palette (and record the
setting of the palette on the display list), but this is probably too
big a change to get done for 2.1.0.
A workaround is simply to avoid using the palette. For example,
n <- 5
par(mfrow = c(2,2))
palette("default")
barplot(1:25,col = 1:25)
barplot(1:25,col = rainbow(n))
cols <- rgb((0:15)/15, g=0,b=0, names=paste("red",0:15,sep="."))
barplot(1:25,col = cols)
Paul
--
Dr Paul Murrell
Department of Statistics
The University of Auckland
Private Bag 92019
Auckland
New Zealand
64 9 3737599 x85392
paul at stat.auckland.ac.nz
http://www.stat.auckland.ac.nz/~paul/
More information about the R-help
mailing list