[R] lattice centre a diverging colour scale

baptiste auguie baptiste.auguie at googlemail.com
Thu Sep 23 09:03:13 CEST 2010


Dear list,

I'm using lattice::levelplot to plot a coloured image of 3D data. The
range of the z values goes from negative to positive, but is not
exactly centred around 0. I would however like to map a diverging
colour scale with white falling exactly at 0, and both extremes being
symmetrical in the legend to better contrast the opposite change in
colour saturation. The following dummy example illustrates my problem,


library(lattice)
d <- transform(expand.grid(x=seq(0, 10, length=100),
                           y=seq(0, 10, length=100)),
               z = sin(x/pi)*cos(0.5*y/pi) - 0.2)

levelplot(z~x*y, data=d,
          panel=panel.levelplot.raster,
          cuts = 100, interpolate = TRUE)

The colour scale goes from -0.3 to 0.9 with a middle (white) value of
0.3 approximately.  I'd like it to be from -1 (most saturated blue) to
1 (most saturated pink), say, with 0 being white.

I read the entry in ?levelplot and in ?level.colors but could not find
a solution to this particular case.

Sincerely,

baptiste



More information about the R-help mailing list