Estoy creando algunos mapas a partir de archivos ráster utilizando el paquete "ráster" en R. Me gustaría crear rásteres de comparación, mostrando varios mapas uno al lado del otro. Es importante para esto que las escalas de color utilizadas sean las mismas para todos los mapas, independientemente de los valores en cada mapa. Por ejemplo, si el mapa 1 tiene valores de 0-1, y el mapa 2 tiene valores de 0-0.5, las celdas con un valor de 0.5 deben tener el mismo color en ambos mapas.¿Cómo puedo crear gráficos ráster con la misma escala de color en R
Por ejemplo:
- mapa 1 tiene valores de 0 a 1
- mapa 2 tiene valores de 0 a 0,5
- el color va de rojo (el más bajo) a verde (el más alto)
Me gustaría un valor de 0.5 para tener el mismo color en ambos mapas (es decir, amarillo, como a medio camino entre el rojo y el verde). El comportamiento actual es que es amarillo en el mapa 1, y verde en el mapa 2.
No puedo encontrar la manera de hacerlo funcionar. No veo ninguna manera de establecer el rango de valores de píxeles para usar con la función de trazado. setMinMax() no ayuda (ya que 'plot' siempre calcula los valores). Incluso intentar establecer los valores a mano (por ejemplo, g1 @ data @ max < - 10) no funciona (estos se ignoran al trazar).
Por último, hacer una pila de los mapas (que se podría esperar que tracen todo en la misma escala de color) tampoco funciona: cada mapa tiene su propia escala de colores.
¿Alguna idea sobre cómo hacer esto?
EDIT:
La solución Terminé usando es:
plot(d, col=rev(rainbow(99, start=0,end=1)), breaks=seq(min(minValue(d)),max(maxValue(d)),length.out=100))
la solución que terminaste usando es en realidad la mejor respuesta. ¡Por favor póngalo como una respuesta y acepte! Casi lo extraño, no busco la respuesta en una pregunta. – TMS
'spplot' muestra un' RasterStack' con una leyenda global para todas las capas. El paquete 'raster' define un método para' spplot', por lo que no necesita convertir su 'RasterStack' en un objeto' Spatial * 'para usarlo. –