Příklad s kvalitativní paletou
Na závěr se podíváme na příklad s kategorickou proměnnou. Rastr land_cover obsahuje mřížkovou kategorizaci zemského povrchu. Prohlédni si ho výpisem:
land_cover
Všimneš si, že values jsou číselné, ale jsou tam také attributes, které tato čísla mapují na kategorie (podobně jako fungují faktory).
Výběr barev pro kategorické proměnné hodně závisí na účelu grafu. Pokud chceš, aby měly všechny kategorie přibližně stejnou vizuální váhu – tedy aby žádná kategorii příliš nevyčnívala – jednou z možností je použít barvy různých odstínů, ale se stejnou chromatičností (míra sytosti) a světlostí (toto je výchozí nastavení pro diskrétní barevné škály v ggplot2 a lze je generovat pomocí funkce hcl()).
Kvalitativní palety z balíčku RColorBrewer vyvažují vizuální rovnováhu barev s jejich snadnou identifikací. Schémata "paired" a "accent" se od tohoto pravidla odchylují – "paired" nabízí dvojice barev různé světlosti a "accent" paletu s několika intenzivnějšími barvami, které lze použít k zvýraznění určitých kategorií.
Pro tato konkrétní data může být výstižnější zvolit intuitivní barvy – například zelenou pro les a modrou pro vodu. Ať už je vhodnější jakýkoli přístup, nastavení nových barev je jen otázkou předání vektoru barev přes argument palette v odpovídající vrstvě tm_***.
Toto cvičení je součástí kurzu
Vizualizace geoprostorových dat v R
Pokyny k cvičení
- Vykresli rastr
land_coverkombinacítm_shape()atm_raster(). Standardnětmappoužívá kvalitativní paletu"Set3"z balíčkuRColorBrewer. - Prohlédni si kód pro
hcl_cols, který napodobuje paletu používanou vggplot2. Pak rastrland_covervykresli znovu a předejhcl_colsargumentupalettefunkcetm_raster(). - Zavolej
levels()naland_cover, abys viděl/a dostupné kategorie. - Tentokrát použij jako paletu
intuitive_colsa přidej vrstvutm_legend()s argumentemposition = c("left", "bottom").
Interaktivní cvičení na vyzkoušení si v praxi
Vyzkoušejte si toto cvičení dokončením tohoto ukázkového kódu.
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