Wie erstelle ich Histogramme in ggplot?

In diesem Blogbeitrag werden wir uns mit Histogrammen beschäftigen.

Zunächst müssen wir die nötigen Bibliotheken laden, also ggplot, und für die Beispiele den Beispieldatensatz palmerpenguins:

library(ggplot2)
library(palmerpenguins)

Einfacher Histogramm-Plot der Flossenlänge

Beginnen wir mit einem einfachen Histogramm-Plot der Flossenlänge der Pinguine:

ggplot(penguins, aes(x=flipper_length_mm)) +
  geom_histogram()

Dieser Plot zeigt die Verteilung der Flossenlängen aller Pinguine im Datensatz.

Histogramm-Plot mit farblicher Unterscheidung nach Pinguinarten

Um die Verteilung der Flossenlängen nach Pinguinarten zu unterscheiden, fügen wir die fill-Ästhetik hinzu:

ggplot(penguins, aes(x=flipper_length_mm, fill=species)) +
  geom_histogram()

Bei Histogrammen wird zwischen der Füllfarbe (mit fill) und der Farbe der Balkenumrandung unterschieden. Würde man also color nehmen, dann würde nur die Balkenumrandung angepasst werden:

ggplot(penguins, aes(x=flipper_length_mm, color=species)) +
  geom_histogram()

Histogramm-Plot mit benutzerdefinierten Farben für die Pinguinarten

Um die Farben der Balken manuell festzulegen, verwenden wir scale_fill_manual:

ggplot(penguins, aes(x=flipper_length_mm, fill=species)) +
  geom_histogram() +
  scale_fill_manual(values = c("darkorange", "darkgreen", "purple")) +
  labs(
    x = "Flossenlänge [mm]",
    y = "Anzahl"
  )

Bei diesem Beispiel sieht man, warum eine Umrandung durchaus nützlich sein kann. Wenn alle Balken dieselbe Umrandungsfarbe haben sollen, muss das direkt in geom_histogram() definiert werden.

ggplot(penguins, aes(x=flipper_length_mm, fill=species)) +
  geom_histogram(color="black") +
  scale_fill_manual(values = c("darkorange", "darkgreen", "purple")) +
  labs(
    x = "Flossenlänge [mm]",
    y = "Anzahl"
  )

Daten von verschiedenen Pinguinarten vergleichen

Wenn man die Histogramme der Pinguinarten vergleichen möchte, dann kann man mit facet_grid() dafür sorgen, dass alle Histogramme übereinander sind, die x-Achse ist gleich für alle Plots, und auch die y-Achse ist gleich, dann sind Balken vergleichbar. species~. heißt dabei, dass die Spezies auf der y-Achse übereinander gelegt wird. Wenn man die Plots nebeneinander haben wollen würde, könnte man .~species verwenden.

ggplot(penguins, aes(x=flipper_length_mm)) +
  geom_histogram(color="black") +
  facet_grid(species~.)+
  labs(
    x = "Flossenlänge [mm]",
    y = "Anzahl"
  )

Histogramm-Plot mit Dichtekurve

Um die Dichte der Flossenlängenverteilung zu visualisieren, fügen wir eine Dichtekurve hinzu und skalieren die y-Achse auf Dichte:

ggplot(penguins, aes(x=flipper_length_mm)) +
  geom_histogram(aes(y= ..density..), color="black") +
  geom_density(color="darkred") +
  labs(
    x = "Flossenlänge [mm]",
    y = "Dichte"
  )

Balkenbreite anpassen

Schließlich können wir die Breite der Balken(bins) anpassen, um die Granularität des Histogramms zu ändern:

ggplot(penguins, aes(x=flipper_length_mm)) +
  geom_histogram(color="black", binwidth=5) +
  labs(
    x = "Flossenlänge [mm]",
    y = "Dichte"
  )

Schreiben Sie einen Kommentar

Ihre E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert