[R] need palette of topographic colors similar to topo.colors()
bogdan romocea
br44114 at gmail.com
Sat Jan 7 20:34:05 CET 2006
Dear useRs,
I got stuck trying to generate a palette of topographic colors that
would satisfy these two requirements:
- the pallete must be 'anchored' at 0 (just like on a map), with
light blue/lawn green corresponding to data values close to 0 (dark
blue to light blue for negative values, green-yellow-brown for
positive values)
- the brown must get darker for higher positive values.
topo.colors() fails both requirements and AFAICS lacks any options to
control its behavior.
#---unsatisfactory topo.colors() behavior
topoclr <- function(tgt)
{
clr <- topo.colors(length(tgt))
clr <- clr[round(rank(tgt),0)]
plot(tgt,pch=15,col=clr)
}
par(mfrow=c(2,1)) ; topoclr(-50:50) ; topoclr(-20:80)
An acceptable solution would be something like this
grayclr <- function(tgt)
{
tgt <- sort(tgt) ; neg <- which(tgt < 0)
clrneg <- gray(0:length(tgt[neg])/length(tgt[neg]))
clrpos <- gray(length(tgt[-neg]):0/length(tgt[-neg]))
clr <- c(clrneg,clrpos)
plot(tgt,pch=15,col=clr)
}
par(mfrow=c(2,1)) ; grayclr(-50:50) ; grayclr(-20:80)
if only I could make gray() use blue/brown instead of black (I tried a
couple of things but got stuck again).
Any suggestions?
Thank you,
b.
More information about the R-help
mailing list