Librería

ridgeline

Autor principal

R CODER

Gráfico ridgeline en R base

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)

Ridgeline en R

Selección de la ventana (bandwidth)

Selección de la ventana

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)

Paleta de colores

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

Joyplot en R

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

Ridgeline color del borde

Etiquetas

Etiquetas ridgeline

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

Mostrar las modas

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)

Ridgeline con moda en R

También te puede interesar