R Language
Combinazioni di colori per la grafica
Ricerca…
viridis - palette di colori compatibili con la stampa e daltonici
Viridis (dal nome del pesce chromis viridis ) è una matplotlib
colori sviluppata di recente per la libreria Python matplotlib
(la presentazione video del link spiega come è stata sviluppata la matplotlib
colori e quali sono i suoi principali vantaggi). È facilmente portato su R
Ci sono 4 varianti di combinazioni di colori: magma
, plasma
, inferno
e viridis
(predefinito). Vengono scelti con il parametro option
e sono codificati come A
, B
, C
e D
, in modo corrispondente. Per avere un'idea delle 4 combinazioni di colori, guarda le mappe:
( immagine souce )
Il pacchetto può essere installato da CRAN o github .
La scenetta per il pacchetto viridis
è semplicemente geniale.
La bella funzionalità della ggplot2
colori viridis
è l'integrazione con ggplot2
. All'interno del pacchetto sono definite due funzioni specifiche di ggplot2
: scale_color_viridis()
e scale_fill_viridis()
. Vedi l'esempio qui sotto:
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
Il progetto ColorBrewer è uno strumento molto popolare per selezionare armoniosamente le tavolozze dei colori. RColorBrewer
è una porta del progetto per R
e offre anche tavolozze daltoniche.
Un esempio di utilizzo
colors_vec <- brewer.pal(5, name = 'BrBG')
print(colors_vec)
[1] "#A6611A" "#DFC27D" "#F5F5F5" "#80CDC1" "#018571"
RColorBrewer
crea le opzioni di colorazione per ggplot2
: scale_color_brewer
e 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))
Una pratica funzione per scorgere un vettore di colori
Abbastanza spesso è necessario vedere la tavolozza dei colori scelta. Una soluzione elegante è la seguente funzione auto-definita:
color_glimpse <- function(colors_string){
n <- length(colors_string)
hist(1:n,breaks=0:n,col=colors_string)
}
Un esempio di utilizzo
color_glimpse(blues9)
colorspace - clicca e trascina l'interfaccia per i colori
Lo colorspace
pacchetto fornisce GUI per la selezione di una tavolozza. Alla chiamata della funzione choose_palette()
appare la seguente finestra:
Una volta scelta la tavolozza, basta premere OK
e non dimenticate di memorizzare l'output in una variabile, ad esempio, pal
.
pal <- choose_palette()
L'output è una funzione che prende n
(numero) come input e produce un vettore di colore di lunghezza n
base alla tavolozza selezionata.
pal(10)
[1] "#023FA5" "#6371AF" "#959CC3" "#BEC1D4" "#DBDCE0" "#E0DBDC" "#D6BCC0" "#C6909A" "#AE5A6D" "#8E063B"
funzioni colore R di base
La funzione colors()
elenca tutti i nomi dei colori che sono riconosciuti da R. C'è un bel PDF dove si possono effettivamente vedere quei colori.
colorRampPalette
crea una funzione che interpola un insieme di colori specificati per creare nuove tavolozze di colori. Questa funzione di output prende n
(numero) come input e produce un vettore di colore di lunghezza n
interpola i colori iniziali.
pal <- colorRampPalette(c('white','red'))
pal(5)
[1] "#FFFFFF" "#FFBFBF" "#FF7F7F" "#FF3F3F" "#FF0000"
Qualsiasi colore specifico può essere prodotto con una funzione rgb()
:
rgb(0,1,0)
produce colore green
.
Tavolozze daltonico
Anche se le persone daltoniche possono riconoscere una vasta gamma di colori, potrebbe essere difficile distinguere tra alcuni colori.
RColorBrewer
offre palette daltoniche:
library(RColorBrewer)
display.brewer.all(colorblindFriendly = T)
Il Color Universal Design dell'Università di Tokyo propone le seguenti tavolozze:
#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")