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")




