Kom igångKom igång gratis

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

Visa kurs

Övningsinstruktioner

  • Rita rastret land_cover genom att kombinera tm_shape() och tm_raster(). Som standard använder tmap den kvalitativa paletten "Set3" från RColorBrewer.
  • Undersök koden för hcl_cols, som efterliknar paletten som används av ggplot2. Rita sedan rastret land_cover igen och skicka hcl_cols till argumentet palette i tm_raster().
  • Anropa levels()land_cover för att se kategorierna.
  • Den här gången använder du intuitive_cols som palett och lägger till ett tm_legend()-lager med argumentet position = 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


Redigera och kör kod