La librería ridgeline
contiene una función del mismo nombre que puede ser usada para crear gráficos ridgeline (también conocidos como joyplots) en R base. Tendrás que pasar una variable numérica y otra categórica que represente grupos. En este tutorial vamos a usar el conjunto de datos chickwts
.
# install.packages("remotes")
remotes::install_github("R-CoderDotCom/ridgeline@main")
library(ridgeline)
ridgeline(chickwts$weight, chickwts$feed)
La estimación tipo núcleo de cada grupo se realiza con la función density
. El valor por defecto para calcular la ventana (bandwidth) es "nrd0"
(escribe ?density
para obtener detalles adicionales), pero también puedes especificar el valor que quieras.
library(ridgeline)
ridgeline(chickwts$weight, chickwts$feed,
bw = 100)
La paleta de colores por defecto es "Zissou"
pero puedes especificar cualquier color, vector de colores o paleta para personalizar las áreas con el argumento palette
. En el siguiente ejemplo estamos pasando la paleta viridis con transparencia de 0.85.
library(ridgeline)
ridgeline(chickwts$weight, chickwts$feed,
palette = hcl.colors(6, palette = "viridis",
alpha = 0.85))
Borde
El color del borde para cada densidad se puede cambiar con el argumento border
. En este ejemplo estamos estableciendo el mismo color que el área, pero también podrías usar lty = 0
para eliminar el borde. También puedes cambiar el ancho del borde con lwd
.
library(ridgeline)
ridgeline(chickwts$weight, chickwts$feed,
palette = hcl.colors(6, palette = "viridis",
alpha = 0.85),
border = hcl.colors(6, palette = "viridis",
alpha = 0.85))
Nombres de los grupos
Por defecto la función muestra los nombres de la variable categórica en el eje Y, pero puedes usar las etiquetas que quieras pasando un vector al argumento labels
.
library(ridgeline)
ridgeline(chickwts$weight, chickwts$feed,
labels = LETTERS[1:6])
Modas
Por último, si agregas mode = TRUE
se mostrará la moda para cada densidad con una línea punteada.
library(ridgeline)
ridgeline(chickwts$weight, chickwts$feed,
mode = TRUE)
También te puede interesar