Um exemplo qualitativo
Para finalizar, vamos ver um exemplo de variável categórica. O raster land_cover contém uma categorização em grade da superfície terrestre. Dê uma olhada em land_cover imprimindo-o:
land_cover
Você vai notar que os values são numéricos, mas há attributes que mapeiam esses números para categorias (como acontece com fatores).
A escolha de cores para variáveis categóricas depende muito do objetivo do gráfico. Quando você quer que as categorias tenham peso visual aproximadamente igual — isto é, não quer que uma se destaque mais do que as outras — uma abordagem é usar cores de matizes variados, mas com croma (uma medida de vivacidade) e luminosidade iguais (isso é padrão para escalas de cores discretas no ggplot2 e pode ser gerado usando a função hcl()).
As paletas qualitativas do RColorBrewer equilibram cores de mesmo peso visual com facilidade de identificação. Os esquemas "paired" e "accent" fogem um pouco disso ao fornecer pares de cores com diferentes níveis de luminosidade e uma paleta com algumas cores mais intensas que podem ser usadas para destacar certas categorias, respectivamente.
Para estes dados em particular, pode fazer mais sentido escolher cores intuitivas, como verde para floresta e azul para água. Qualquer que seja a opção mais adequada, definir novas cores é só uma questão de passar um vetor de cores pelo argumento palette na camada tm_*** correspondente.
Este exercício faz parte do curso
Visualizando dados geoespaciais em R
Instruções do exercício
- Plote o raster
land_covercombinandotm_shape()etm_raster(). Por padrão,tmapusa a paleta qualitativa"Set3"doRColorBrewer. - Examine o código de
hcl_cols, que imita a paleta usada peloggplot2. Em seguida, plote o rasterland_covernovamente, passandohcl_colspara o argumentopalettedetm_raster(). - Chame
levels()emland_coverpara ver as categorias. - Desta vez, use
intuitive_colscomo paleta e adicione uma camadatm_legend()com o argumentoposition = c("left", "bottom").
Exercício interativo prático
Experimente este exercício completando este código de exemplo.
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