Martin Maechler
1997-Jul-14 13:07 UTC
R-beta: Plotting: numeric 'col' colors; col=0, col=1, .. | Nice "funclet"
``We all know'' that R has more flexible and nicer color specifications than S-plus. There are situations however, where I'd like to specify colors numerically, e.g. 1) convenience of using different colors in a for(.) loop or 2) backward compatibility with S. In S, there's the quite known ``standard'' col = 0 :<==> current background color [ = white by default] col = 1 :<==> current foreground color, ie. default color. [ = black] In R, this is currently different: col = 0 is the same as col = 2 which maybe rather an accident than anything else. col = 1 however takes a different color than the current foreground -- which can be NICE in certain situations, where we'd rather have points / lines in a different color than the default foreground On the other hand, I think "S compatibility" is more important here. I assume that it's not too hard to change the ``numeric color'' map such as to get S compatibility. -------------------------------------------- Related issue: colors() gives a character vector of length 657 with possible color names. Quite nice; However, 1) how can I find out which of these correspond to col = 2.., K ? 2) Wouldn't it be nice if this map was mutable ? -------------------------------------------------------- Here is something, some of you might appreciate for getting an overview of 'pch' and numeric col : ###------- numeric 'col' / 'pch' test ----------- ###--------------- === === ---------------- ## p.pch.col <- function(c.max = 49, codes = 0:c.max, init = if(.Device == "X11") par(bg='gray75')) { ## Purpose: Test / Examine the numerical 'pch' & 'col' plotting attributes ## ------------------------------------------------------------------------- ## Arguments: codes: integer codes for pch & col ## ------------------------------------------------------------------------- ## Author: Martin Maechler, Date: 14 Jul 97, 11:44 ix <- codes %/% 10 iy <- 10 - codes %% 10 if(!exists(".Device") || is.null(.Device)) x11(height=9) init plot(ix, iy, type='n', xlim = range(ix) + .15*c(-1,1), yaxt = 'n', xlab = 'floor( i / 10 )', ylab = ' i MOD 10', main = "points(...., pch = i, col = i, bg = i-10)") axis(2, at = 10- 0:9, labels = 9:0) for(j in seq(codes)) { i <- codes[j] points(ix[j]-.1,iy[j], pch=i, col=i, bg = i-10) points(ix[j]+.1,iy[j]-.15, pch=i, col='black', cex = 3) text (ix[j] ,iy[j]+.15, i) } } ## x11() or postscript("pch-col-test.ps", landscape= F) p.pch.col() p.pch.col(99) Martin Maechler <maechler at stat.math.ethz.ch> <>< Seminar fuer Statistik, SOL G1 ETH (Federal Inst. Technology) 8092 Zurich SWITZERLAND phone: x-41-1-632-3408 fax: ...-1086 http://www.stat.math.ethz.ch/~maechler/ =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-r-help mailing list -- Read http://www.ci.tuwien.ac.at/~hornik/R/R-FAQ.html Send "info", "help", or "[un]subscribe" (in the "body", not the subject !) To: r-help-request at stat.math.ethz.ch =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
Thomas Lumley
1997-Jul-14 16:16 UTC
R-beta: Plotting: numeric 'col' colors; col=0, col=1, .. | Nice "funclet"
> colors() gives a character vector of length 657 with possible color names. > > Quite nice; However, > > 1) how can I find out which of these correspond to col = 2.., K ? > > 2) Wouldn't it be nice if this map was mutable ?This map probably shouldn't be mutable. As far as I can tell it is just a translation of the official X11 color map (found in eg /usr/lib/X11/rgb.txt). These color names are understood by quite a lot of X software (including the motif() and openlook() drivers in S-PLUS). Thomas Lumley ------------------------------------------------------+------ Biostatistics : "Never attribute to malice what : Uni of Washington : can be adequately explained by : Box 357232 : incompetence" - Hanlon's Razor : Seattle WA 98195-7232 : : ------------------------------------------------------------ =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-r-help mailing list -- Read http://www.ci.tuwien.ac.at/~hornik/R/R-FAQ.html Send "info", "help", or "[un]subscribe" (in the "body", not the subject !) To: r-help-request at stat.math.ethz.ch =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=