Un ejemplo cualitativo
Para terminar, veamos un ejemplo con una variable categórica. El ráster land_cover contiene una categorización en cuadrícula de la superficie terrestre. Échale un vistazo a land_cover imprimiéndolo:
land_cover
Verás que los values son numéricos, pero hay attributes que asignan estos números a categorías (igual que funcionan los factores).
Elegir colores para variables categóricas depende mucho del objetivo del gráfico. Cuando quieres que las categorías tengan un peso visual similar —es decir, no quieres que una resalte más que las demás—, una opción es usar colores de tonos distintos pero con la misma croma (medida de la viveza) y luminosidad (esto es lo predeterminado en las escalas discretas de color de ggplot2 y se puede generar con la función hcl()).
Las paletas cualitativas de RColorBrewer equilibran colores de peso visual similar con facilidad de identificación. Los esquemas "paired" y "accent" se desvían de esto al ofrecer pares de colores con distinta luminosidad y una paleta con algunos colores más intensos que pueden usarse para resaltar ciertas categorías, respectivamente.
Para estos datos en particular, podría tener más sentido elegir colores intuitivos, como verde para bosque y azul para agua. Elijas lo que elijas, definir nuevos colores es tan sencillo como pasar un vector de colores mediante el argumento palette en la capa tm_*** correspondiente.
Este ejercicio forma parte del curso
Visualización de datos geoespaciales en R
Instrucciones del ejercicio
- Representa el ráster
land_covercombinandotm_shape()ytm_raster(). De forma predeterminada,tmapusa la paleta cualitativa"Set3"deRColorBrewer. - Revisa el código de
hcl_cols, que imita la paleta que usaggplot2. Después, vuelve a representar el rásterland_cover, pasandohcl_colsal argumentopalettedetm_raster(). - Llama a
levels()sobreland_coverpara ver las categorías. - Esta vez, usa
intuitive_colscomo paleta y añade una capatm_legend()con el argumentoposition = c("left", "bottom").
ejercicio interactivo práctico
Prueba este ejercicio completando este código de ejemplo.
library(raster)
# Plot land_cover
# Palette like the ggplot2 default
hcl_cols <- hcl(h = seq(15, 375, length = 9),
c = 100, l = 65)[-9]
# Use hcl_cols as the palette
# Examine levels of land_cover
# A set of intuitive colors
intuitive_cols <- c(
"darkgreen",
"darkolivegreen4",
"goldenrod2",
"seagreen",
"wheat",
"slategrey",
"white",
"lightskyblue1"
)
# Use intuitive_cols as palette