Farger, fargekoder og fargepaletter

Prinsipper for koding av digitale farger

Det finnes ulike typer fargekoder for å angi en farge. Koder kan angis med en tekststreng, RGB (Red Green Blue) eller heksadesimal. Dette er de vanligste formatene for å angi en farge i digitale formater. Det finnes andre fargekoder (f.eks. CMYK), men de diskuteres ikke her.

RGB (Red Green Blue)

RGB-farger lages ved å angi fargens innhold av rødt, grønt og blått. Ved å variere mengden rødt, grønt og blått kan mange farger og nyanser lages. Bruken av RGB ligner menneskets fysiologi. I øyets netthinne (retina) finnes to typer synsceller: staver og tapper. Tappene registrerer farge i lyset. Det skjer ved at de registrerer rødt, grønt og blått lys. Stavene er lysfølsomme og trengs for mørkesyn. I RGB defineres hver farge med et tall fra 0 til 255. Eksempler på RGB-farger med tilhørende RGB-koder følger:

Heksadesimal

Farger kan også angis med heksadesimaler. Disse fargekodene består av bokstaver og tall. Eksempler på heksadesimale koder følger (samme farger som ovenfor):

Tekststrenger

I R kan farger angis med tekststrenger. Nedenfor ser du en jukselapp med farger og deres tilsvarende tekststrenger.

Jukselapp over de navngitte fargene i R, der hver rute er farget og merket med sitt navn, f.eks. brown4, gold, gray50 og steelblue

Generere farger

For å finne fargekoder i RGB, Hex, HSL og andre formater finnes blant annet følgende verktøy:

Fargekoder i ggplot2

Her følger flere eksempler med ulike metoder for å fargekode grafer i ggplot2(). I det første eksemplet angis fargen på punktene med en tekststreng. Merk at color ikke angis i aes(), fordi vi ikke bruker en data frame til å angi fargen.

ggplot(data=mpg, aes(x = displ,
                     y = hwy)) +
  geom_point(size=3, color='gold1')
Spredningsdiagram av motorvolum (displ) mot forbruk på landevei (hwy) med alle punkter i gullgult

I neste eksempel angis fargen på punktene med en HEX-kode. Vi bruker HEX-koden #2AB4CA, som er en vakker turkisblå farge. Merk igjen at color ikke angis i aes(), fordi vi ikke bruker en data frame til å angi fargen.

ggplot(data=mpg, aes(x = displ,
                     y = hwy)) +
  geom_point(size=3, color="#2AB4CA")
Spredningsdiagram av displ mot hwy med alle punkter i turkisblått fra HEX-koden #2AB4CA

I neste eksempel angis fargen på punktene med en variabel i vår data frame. Da må color angis i aes(). Vi begynner med å mappe color til en numerisk variabel, nemlig `cty`, som angir drivstofforbruk ved bykjøring. I figuren nedenfor ser vi at punktene har fått en farge langs en fargeskala som forklares til høyre for grafen. De mørkeste punktene har cty på 10, mens de lyseste har cty på 35, med en kontinuerlig skala imellom. Det innebærer at en numerisk variabel mappes til en kontinuerlig fargeskala med ggplot().

ggplot(data=mpg, aes(x = displ,
                     y = hwy)) +
  geom_point(size=3, aes(color=cty))
Spredningsdiagram av displ mot hwy der punktene farges langs en kontinuerlig blå skala etter cty, med fargeforklaring 10 til 35

I neste eksempel angis fargen på punktene med en kategorisk variabel (factor) i vår data frame. Som det fremgår av bildet nedenfor, får de ulike faktornivåene distinkte farger som forklares til høyre for grafen.

ggplot(data=mpg, aes(x = displ,
                     y = hwy)) +
  geom_point(size=3, aes(color=class))
Spredningsdiagram av displ mot hwy der punktene har distinkte farger per bilklasse (class), med forklaring for sju klasser