Ett kvalitativt exempel
Till sist ska vi titta på ett exempel med en kategorisk variabel. Rastret land_cover innehåller en rutnätsbaserad kategorisering av jordens yta. Undersök land_cover genom att skriva ut det:
land_cover
Du kommer att märka att values är numeriska, men att det finns attributes som kopplar dessa tal till kategorier – precis som faktorer fungerar.
Valet av färger för kategoriska variabler beror mycket på grafens syfte. När du vill att kategorierna ska ha ungefär lika stor visuell tyngd – det vill säga att ingen kategori ska sticka ut mer än de andra – är ett vanligt tillvägagångssätt att använda färger med varierande nyans men med samma chroma (ett mått på färgstyrka) och ljusstyrka. Det är standardbeteendet för diskreta färgskalor i ggplot2 och kan genereras med funktionen hcl().
De kvalitativa paletterna i RColorBrewer balanserar lika visuell tyngd med enkel färgidentifiering. Schemana "paired" och "accent" avviker från detta – det förstnämnda erbjuder färgpar med olika ljusstyrka, och det sistnämnda innehåller en palett med några mer intensiva färger som kan användas för att lyfta fram vissa kategorier.
För just det här datasetet kan det vara mer logiskt att välja intuitiva färger, till exempel grönt för skog och blått för vatten. Oavsett vilket alternativ som passar bäst, är det enkelt att byta färger – du skickar bara in en vektor med färger via argumentet palette i motsvarande tm_***-lager.
Den här övningen är en del av kursen
Visualisering av geospatial data i R
Övningsinstruktioner
- Rita rastret
land_covergenom att kombineratm_shape()ochtm_raster(). Som standard användertmapden kvalitativa paletten"Set3"frånRColorBrewer. - Undersök koden för
hcl_cols, som efterliknar paletten som används avggplot2. Rita sedan rastretland_coverigen och skickahcl_colstill argumentetpaletteitm_raster(). - Anropa
levels()påland_coverför att se kategorierna. - Den här gången använder du
intuitive_colssom palett och lägger till etttm_legend()-lager med argumentetposition = c("left", "bottom").
Interaktiv övning med praktiskt arbete
Testa den här övningen genom att slutföra den här exempelkoden.
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