R Language
Kleurenschema's voor afbeeldingen
Zoeken…
viridis - print- en kleurenblindvriendelijke paletten
Viridis (genoemd naar de chromis viridis-vis ) is een recent ontwikkeld kleurenschema voor de Python-bibliotheek matplotlib
(de videopresentatie via de link legt uit hoe het kleurenschema is ontwikkeld en wat de belangrijkste voordelen zijn). Het wordt naadloos overgezet naar R
Er zijn 4 varianten van kleurenschema's: magma
, plasma
, inferno
en viridis
(standaard). Zij worden gekozen met de option
parameter en worden gecodeerd als A
, B
, C
en D
dienovereenkomstig. Bekijk de kaarten om een indruk te krijgen van de 4 kleurenschema's:
( afbeelding souce )
Het pakket kan worden geïnstalleerd vanaf CRAN of github .
Het vignet voor viridis
pakket is gewoon briljant.
Leuke eigenschap van het viridis
kleurenschema is integratie met ggplot2
. Binnen het pakket zijn twee ggplot2
specifieke functies gedefinieerd: scale_color_viridis()
en scale_fill_viridis()
. Zie onderstaand voorbeeld:
library(viridis)
library(ggplot2)
gg1 <- ggplot(mtcars)+
geom_point(aes(x = mpg, y = hp, color = disp), size = 3)+
scale_color_viridis(option = "B")+
theme_minimal()+
theme(legend.position = c(.8,.8))
gg2 <- ggplot(mtcars)+
geom_violin(aes(x = factor(cyl), y = hp, fill = factor(cyl)))+
scale_fill_viridis(discrete = T)+
theme_minimal()+
theme(legend.position = 'none')
library(cowplot)
output <- plot_grid(gg1,gg2, labels = c('B','D'),label_size = 20)
print(output)
RColorBrewer
ColorBrewer- project is een zeer populaire tool om harmonieus bijpassende kleurenpaletten te selecteren. RColorBrewer
is een poort van het project voor R
en biedt ook kleurenblindvriendelijke paletten.
Een voorbeeld van gebruik
colors_vec <- brewer.pal(5, name = 'BrBG')
print(colors_vec)
[1] "#A6611A" "#DFC27D" "#F5F5F5" "#80CDC1" "#018571"
RColorBrewer
maakt RColorBrewer
voor ggplot2
: scale_color_brewer
en scale_fill_brewer
.
library(ggplot2)
ggplot(mtcars)+
geom_point(aes(x = mpg, y = hp, color = factor(cyl)), size = 3)+
scale_color_brewer(palette = 'Greens')+
theme_minimal()+
theme(legend.position = c(.8,.8))
Een handige functie om een glimp van een vector van kleuren op te vangen
Heel vaak is het nodig om een glimp op te vangen van het gekozen kleurenpalet. Een elegante oplossing is de volgende zelf gedefinieerde functie:
color_glimpse <- function(colors_string){
n <- length(colors_string)
hist(1:n,breaks=0:n,col=colors_string)
}
Een voorbeeld van gebruik
color_glimpse(blues9)
kleurruimte - klik & sleep interface voor kleuren
De colorspace
biedt een GUI voor het selecteren van een palet. Bij het aanroepen van de functie choose_palette()
verschijnt het volgende venster:
Wanneer het palet is gekozen, drukt u gewoon op OK
en vergeet u de uitvoer niet in een variabele op te slaan, bijvoorbeeld pal
.
pal <- choose_palette()
De uitvoer is een functie die n
(nummer) als invoer neemt en een kleurenvector met lengte n
produceert volgens het geselecteerde palet.
pal(10)
[1] "#023FA5" "#6371AF" "#959CC3" "#BEC1D4" "#DBDCE0" "#E0DBDC" "#D6BCC0" "#C6909A" "#AE5A6D" "#8E063B"
basis R-kleurfuncties
Functiekleuren colors()
somt alle kleurnamen op die door R. worden herkend. Er is een mooie PDF waar je die kleuren kunt zien.
colorRampPalette
maakt een functie die een reeks gegeven kleuren interpoleert om nieuwe kleurenpaletten te maken. Deze uitvoerfunctie neemt n
(getal) als invoer en produceert een kleurenvector met lengte n
de initiële kleuren interpoleert.
pal <- colorRampPalette(c('white','red'))
pal(5)
[1] "#FFFFFF" "#FFBFBF" "#FF7F7F" "#FF3F3F" "#FF0000"
Elke specifieke kleur kan worden geproduceerd met de functie rgb()
:
rgb(0,1,0)
produceert green
kleur.
Kleurblindvriendelijke paletten
Hoewel kleurenblinde mensen een breed scala aan kleuren kunnen herkennen, is het misschien moeilijk om onderscheid te maken tussen bepaalde kleuren.
RColorBrewer
biedt kleurenblindvriendelijke paletten:
library(RColorBrewer)
display.brewer.all(colorblindFriendly = T)
Het Color Universal Design van de University of Tokyo stelt de volgende paletten voor:
#palette using grey
cbPalette <- c("#999999", "#E69F00", "#56B4E9", "#009E73", "#F0E442", "#0072B2", "#D55E00", "#CC79A7")
#palette using black
cbbPalette <- c("#000000", "#E69F00", "#56B4E9", "#009E73", "#F0E442", "#0072B2", "#D55E00", "#CC79A7")