Ridgeline Plot

Eine Alternative zu Histogrammen sind Ridgeline Plots, die ebenfalls die Dichte-Verteilung anzeigen. Dazu nutzen wir eine Funktion aus der library ggridges. Ridgeline Plots stellen immer aufgeteilte Variablen dar, du benötigst also die Angabe einer y-Variable in der ggplot()-Funktion. Du erstellst gleich ein Ridgeline Plot des Alters getrennt nach Geschlechtskategorien.

install.packages("ggridges")
library("ggridges")

Um ein Ridgeline Plot zu erstellen, nutzen wir die Funktion geom_density_ridges(): Wir stellen innerhalb der ggplot()-Funktion noch Geschlecht als y-Variable fest und sagen, dass die farbliche Darstellung nach der Variable gndr unterschiedlich sein soll (Argument fill = gndr):

ridgeline <- ggplot(
  pss, 
  aes(
    agea,
    gndr,
    fill = gndr
  )
) +
  geom_density_ridges(
    scale = 0.9,
    alpha = 0.4
  ) +
  theme_ridges() +
  theme(legend.position = "none")

ridgeline
## Warning: Removed 157 rows containing non-finite outside the scale range
## (`stat_density_ridges()`).

Auch dieses kannst du leicht wieder anpassen.

ridgeline + 
  labs(
    title = "Ridgeline Plot", 
    x = "Age in years",
    y = ""
  ) + 
  theme_ridges(
    grid = TRUE,
    center_axis_labels = TRUE
  ) + 
  scale_fill_cyclical(
    labels = c(
      "female", 
      "male"
    ),
    values = cbp1,
    guide = "legend",
    name = "Gender"
  ) +
  theme(axis.text.y = element_blank())
## Warning: Removed 157 rows containing non-finite outside the scale range
## (`stat_density_ridges()`).