Zacznij terazZacznij za darmo

Przykład zmiennej jakościowej

Na koniec przyjrzyjmy się przykładowi zmiennej kategorycznej. Raster land_cover zawiera siatkową klasyfikację powierzchni Ziemi. Wyświetl land_cover, wpisując:

land_cover

Zauważysz, że values są numeryczne, ale attributes przypisują tym liczbom kategorie (podobnie jak w przypadku czynników w R).

Dobór kolorów dla zmiennych kategorycznych zależy w dużej mierze od celu wizualizacji. Gdy chcesz, aby kategorie miały mniej więcej równy ciężar wizualny – tzn. żadna nie wyróżniała się bardziej od pozostałych – jednym z podejść jest użycie kolorów o różnych odcieniach, ale jednakowej chrominancji (miarze nasycenia) i jasności (to domyślne zachowanie dyskretnych skal kolorów w ggplot2, które można uzyskać funkcją hcl()).

Jakościowe palety RColorBrewer łączą równy ciężar wizualny kolorów z łatwością ich rozróżniania. Schematy "paired" i "accent" odbiegają od tej zasady: pierwszy oferuje pary kolorów o różnej jasności, drugi zawiera kilka intensywniejszych barw, które można wykorzystać do wyróżnienia wybranych kategorii.

W przypadku tych konkretnych danych sensowniejszym wyborem mogą być kolory intuicyjne – np. zielony dla lasów i niebieski dla wód. Niezależnie od podejścia, zmiana kolorów sprowadza się do przekazania wektora kolorów przez argument palette w odpowiedniej warstwie tm_***.

To ćwiczenie jest częścią kursu

Wizualizacja danych geoprzestrzennych w R

Zobacz kurs

Instrukcje do ćwiczenia

  • Wyświetl raster land_cover, łącząc tm_shape() z tm_raster(). Domyślnie tmap używa jakościowej palety RColorBrewer "Set3".
  • Przeanalizuj kod tworzący hcl_cols, który odwzorowuje paletę stosowaną przez ggplot2. Następnie ponownie narysuj raster land_cover, przekazując hcl_cols do argumentu palette w tm_raster().
  • Wywołaj levels() na land_cover, aby zobaczyć dostępne kategorie.
  • Tym razem użyj intuitive_cols jako palety i dodaj warstwę tm_legend() z argumentem position = c("left", "bottom").

Interaktywne ćwiczenie praktyczne

Spróbuj tego ćwiczenia, uzupełniając ten przykładowy kod.

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


Edytuj i uruchom kod