R Language
Esquemas de color para gráficos
Buscar..
viridis - paletas amigables para la impresión y el color ciego
Viridis (que lleva el nombre de chromis viridis fish ) es un esquema de color desarrollado recientemente para la biblioteca de Python matplotlib
(la presentación en video del enlace explica cómo se desarrolló el esquema de color y cuáles son sus principales ventajas). Está perfectamente portado a R
Hay 4 variantes de combinaciones de colores: magma
, plasma
, inferno
y viridis
(predeterminado). Se eligen con el parámetro de option
y se codifican como A
, B
, C
y D
, de manera correspondiente. Para tener una impresión de los 4 esquemas de color, mire los mapas:
( fuente de imagen )
El paquete se puede instalar desde CRAN o github .
La viñeta para el paquete viridis
es simplemente brillante.
Una buena característica de la combinación de colores viridis
es la integración con ggplot2
. Dentro del paquete se ggplot2
dos ggplot2
específicas de ggplot2
: scale_color_viridis()
y scale_fill_viridis()
. Vea el ejemplo a continuación:
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
El proyecto ColorBrewer es una herramienta muy popular para seleccionar paletas de colores que combinen armoniosamente. RColorBrewer
es un puerto del proyecto para R
y también ofrece paletas que no RColorBrewer
.
Un ejemplo de uso
colors_vec <- brewer.pal(5, name = 'BrBG')
print(colors_vec)
[1] "#A6611A" "#DFC27D" "#F5F5F5" "#80CDC1" "#018571"
RColorBrewer
crea opciones de coloración para ggplot2
: scale_color_brewer
y 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 función práctica para vislumbrar un vector de colores.
Muy a menudo es necesario vislumbrar la paleta de colores elegida. Una solución elegante es la siguiente función autodefinida:
color_glimpse <- function(colors_string){
n <- length(colors_string)
hist(1:n,breaks=0:n,col=colors_string)
}
Un ejemplo de uso
color_glimpse(blues9)
espacio de color - interfaz de clic y arrastre para los colores
El colorspace
paquete proporciona GUI para seleccionar una paleta. En la función choose_palette()
, aparece la siguiente ventana emergente:
Cuando se elige la paleta, simplemente presione OK
y no olvide almacenar la salida en una variable, por ejemplo, pal
.
pal <- choose_palette()
La salida es una función que toma n
(número) como entrada y produce un vector de color de longitud n
según la paleta seleccionada.
pal(10)
[1] "#023FA5" "#6371AF" "#959CC3" "#BEC1D4" "#DBDCE0" "#E0DBDC" "#D6BCC0" "#C6909A" "#AE5A6D" "#8E063B"
funciones básicas de color R
La función colors()
enumera todos los nombres de colores reconocidos por R. Hay un buen PDF donde uno puede ver esos colores.
colorRampPalette
crea una función que interpola un conjunto de colores dados para crear nuevas paletas de colores. Esta función de salida toma n
(número) como entrada y produce un vector de color de longitud n
interpola los colores iniciales.
pal <- colorRampPalette(c('white','red'))
pal(5)
[1] "#FFFFFF" "#FFBFBF" "#FF7F7F" "#FF3F3F" "#FF0000"
Cualquier color específico se puede producir con una función rgb()
:
rgb(0,1,0)
Produce color green
.
Paletas de colores ciegos
A pesar de que las personas que no conocen el color pueden reconocer una amplia gama de colores, puede ser difícil diferenciar entre ciertos colores.
RColorBrewer
proporciona paletas de colores RColorBrewer
:
library(RColorBrewer)
display.brewer.all(colorblindFriendly = T)
El Color Universal Design de la Universidad de Tokio propone las siguientes paletas:
#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")