Clave de color de diagrama de niveles: rango y extremos

¿Es posible en R crear una clave de color como la siguiente? (este proviene del software Grid Analysis and Display System - Grads).

Hay dos características que no puedo reproducir en R:

La secuencia no es lineal, sin embargo, se muestra como siLos valores mayores que 200 son grises / Los valores menores que 0 son blancos

Estoy usando levelplot de rastervis que traza rásteres usando el diagrama de nivel de red:

require(raster)
require(rasterVis)

set.seed(200)

X = seq(-40,0,by=1)
Y = seq(-60,-40,by=1)
grid = expand.grid(list(X=X,Y=Y))
Z = rnorm(nrow(grid),mean=10,sd=100)

data = data.frame(grid,Z)
r = rasterFromXYZ(data)
mapTheme <- rasterTheme(region=c('#EEF7FA','#D6F8F7',"#BEDAFF",'#5DA4FF',"#0000FF","#D4F9E2","#00FF7F","#008000","#FFFF00","#FFD27F", "#FFB732"    ,"#EE7600",
                                 "#D53E4F","#FF6A6A"))  
my.at = c(0,1,5,10,15,20,25,30,40,50,75,100,150,200)
myColorkey <- list(at=my.at,
                   space="bottom",
                   labels=list(at=my.at))
p=levelplot(r, par.settings=mapTheme,at = my.at, colorkey=myColorkey,margin=F)
print(p)

El resultado:

Como puede ver, ambos valores menores que 0 y mayores que 200 son blancos, no tengo idea de cómo establecer valores mayores o menores que cierto valor para que aparezcan como un color específico. Además, ¿cómo puedo hacer que el espacio entre marcas gruesas consecutivas en la clave de color tenga el mismo tamaño aunque los intervalos no sean los mismos?

Respuestas a la pregunta(2)

Su respuesta a la pregunta