Färger, färgkoder och färgpaletter

Principer för kodning av digitala färger

Det finns olika typer av färgkoder för att specificera en färg. Koder kan specificeras med en textsträng, RGB (Red Green Blue) eller hexadecimal. Dessa är de vanligaste formaten för att specificera en färg i digitala format. Det finns andra färgkoder (t ex CMYK) men de diskuteras inte här.

RGB (Red Green Blue)

RGB-färger skapas genom att specificera färgens röda, gröna och blå innehåll. Genom att variera mängden rött, grönt och blått kan många färger och nyanser skapas. Användning av RGB liknar människans fysiologi. I ögats näthinna (retina) finns två typer av synceller: stavar och tappar. Tappar registrerar färg i ljuset. Det görs genom att registrera rött, grönt och blått ljus. Stavar är ljuskänsliga och behövs för mörkerseende. I RGB definieras varje färg med en siffra från 0 till 255. Exempel på RGB-färger med tillhörande RGB-koder följer:

Hexadecimal

Färger kan även anges med hexadecimaler. Dessa färgkoder består av bokstäver och siffror. Exempel på hexadecimalkoder följer (samma färger som ovan):

Textsträngar

I R kan färger anges med textsträngar. Nedan ses en lathund med färger och deras motsvarande textsträngar.

Lathund över R:s namngivna färger, varje ruta färgad och märkt med sitt namn, t.ex. brown4, gold, gray50 och steelblue

Generera färger

För att hitta färgkoder i RGB, Hex, HSL och andra format finns bland annat följande verktyg:

Färgkoder i ggplot2

Här följer flera exempel med varierande metoder för att färgkoda grafer i ggplot2(). I första exemplet specificeras färgen på punkterna med en textsträng. Notera att color inte anges i aes() eftersom vi inte använder en data frame för att specificera färgen.

ggplot(data=mpg, aes(x = displ,
                     y = hwy)) +
  geom_point(size=3, color='gold1')
Spridningsdiagram av motorvolym (displ) mot förbrukning på landsväg (hwy) med alla punkter i guldgult

I nästa exempel specificeras färgen på punkterna med en HEX-kod. Vi använder HEX-koden #2AB4CA som är en vecker turkosblå färg. Notera ånyo att color inte anges i aes() eftersom vi inte använder en data frame för att specificera färgen.

ggplot(data=mpg, aes(x = displ,
                     y = hwy)) +
  geom_point(size=3, color="#2AB4CA")
Spridningsdiagram av displ mot hwy med alla punkter i turkosblått från HEX-koden #2AB4CA

I nästa exempel specificeras färgen på punkterna med variabel i vår data frame. Då måste color specificeras i aes(). Vi börjar med att mappa color till en numerisk variabel, nämligen `cty` som anger bränsleförbrukning i stadsmiljö. I figuren nedan framgår att punkterna fått en färg längs en färgskala som förklaras till höger om grafen. De mörkaste punkterna har cty på 10, medan de ljusaste har cty på 35, med en kontinuerlig skala där emellan. Det innebär att en numerisk variabel mappas till en kontinuerlig färgskala med ggplot().

ggplot(data=mpg, aes(x = displ,
                     y = hwy)) +
  geom_point(size=3, aes(color=cty))
Spridningsdiagram av displ mot hwy där punkterna färgas längs en kontinuerlig blå skala efter cty, med färgförklaring 10 till 35

I nästa exempel specificeras färgen på punkterna med kategorisk variabel (factor) i vår data frame. Som framgår av nedanstående bild får de olika faktornivåerna distinkta färger som förklaras till höger om grafen.

ggplot(data=mpg, aes(x = displ,
                     y = hwy)) +
  geom_point(size=3, aes(color=class))
Spridningsdiagram av displ mot hwy där punkterna har distinkta färger per bilklass (class), med förklaring för sju klasser