UP | HOME |

Gráfico de densidades apiladas con el paquete ggridges de R

Gráfico de densidades apiladas con el paquete ggridges de R

¡El diagrama de cajas cumple cincuenta años! Cinco números que han acompañado a varias generaciones. Pero ¿se aventura por las crestas (ridges) de la vida?

El perfil de la cresta señala el límite
Cresta del cerro, Daniel Torres García

Densidades para cada nivel

El paquete ggridges representa densidades apiladas según los niveles de una variable. Visualmente muy informativos, se programan en el entorno ggplot.

library(ggplot2)
library(ggridges)

ggplot(lincoln_weather, aes(x = `Mean Temperature [F]`, y = Month, fill = stat(x))) +
    geom_density_ridges_gradient(scale = 3, rel_min_height = 0.01, gradient_lwd = 1.) +
    scale_x_continuous(expand = c(0, 0)) +
    scale_y_discrete(expand = expand_scale(mult = c(0.01, 0.25))) +
    scale_fill_viridis_c(name = "Temp. [F]", option = "C") +
    labs(
        title = 'Temperatures in Lincoln NE',
        subtitle = 'Mean temperatures (Fahrenheit) by month for 2016'
    ) +
    theme_ridges(font_size = 13, grid = TRUE) +
    theme(axis.title.y = element_blank())

Gráfico de densidades apilados. Representación de histogramas

Reordenación de los niveles

Cuando los niveles no presentan una ordenación prefijada conviene ordenarlos según su mediana.

data <-  iris
data$Species <- reorder(data$Species, data$Petal.Length,median)

ggplot(data, aes(x = Petal.Length, y = Species, fill = stat(x))) +
    geom_density_ridges_gradient(scale = 3, rel_min_height = 0.01, gradient_lwd = 1.) +
    scale_x_continuous(expand = c(0, 0)) +
    scale_y_discrete(expand = expand_scale(mult = c(0.01, 0.25))) +
    scale_fill_viridis_c(name = "Length of Petal", option = "C") +
    labs(
        title = 'Iris flowers',
        subtitle = 'Length of petal by specie'
    ) +
    theme_ridges(font_size = 13, grid = TRUE) +
    theme(axis.title.y = element_blank()) +
    theme(legend.position = "none")


Gráfico de densidades ordenados según la mediana

Referencia