[R] divergent colors around zero in levelplot()

Don McKenzie dmck at u.washington.edu
Sat Nov 23 05:43:53 CET 2013

I would like to produce a levelplot with divergent colors such that increasingly negative values of Z get darker in the first color and increasingly
positive values get darker in the second color.  this is common in cartography. I have tried tinkering with the col.regions argument but the best I can do
is to get the split in the middle of my range of Z, but in my particular case range(Z) is (-1,12).

I am using R 3.0.2 on OSX 10.9

Here is an example

x <- y <- c(1:25) 
grid <- expand.grid(x=x,y=y)
grid$z <- sort(runif(625,min=-1,max=12))
levelplot(z ~ x*y,grid)   # produces the default pink and blue but the split is at ~5.5

# do something clever here
# e.g., my.colors <- <create a palette that splits at zero>

levelplot(z ~ x*y,grid,col.regions=my.colors)  # so there should be some light pink at the bottom and the rest increasingly intense blue

Ideas appreciated.  Thanks in advance.

Don McKenzie
Research Ecologist
Pacific Wildland Fire Sciences Lab
US Forest Service

Affiliate Professor 
School of Environmental and Forest Sciences 
University of Washington 
dmck at uw.edu

More information about the R-help mailing list