...

Visualisierung mit R und ggplot2

Warum ggplot2?

ggplot2 (von Hadley Wickham) basiert auf dem „Grammar of Graphics“-Ansatz. Ziel: Ein konsistentes System, in dem Du:

  • Datensatz und Ästhetiken (x, y, Farbe, Form …) definierst,
  • Dann „Geoms“ (geom_point, geom_bar, geom_histogram etc.) draufsetzt,
  • Und schrittweise erweiterst, z.B. mit Themes, Facets usw.

Das Ergebnis sind oft professionell aussehende Grafiken mit wenig Code, dafür sehr flexibel.

(Kleiner Nachteil: Anfangs ungewohnt. Aber es lohnt sich!)

Installation & Basics

install.packages("ggplot2")  # einmalig

library(ggplot2)

Beispiel:

# Nehmen wir den eingebauten Datensatz "mpg" aus ggplot2

head(mpg)

#   manufacturer model displ year cyl trans ...

# Bisschen reinschauen

str(mpg)

ggplot(data=mpg, aes(x=displ, y=hwy)) +

  geom_point()
  • ggplot(…) erzeugt den „Rahmen“
  • aes(x=displ, y=hwy) sagt: X-Achse = displ, Y-Achse = hwy
  • + geom_point(): Zeichne Punkte

Geoms und Ästhetiken

3.1 Geoms

  • geom_point(): Punkte (Scatterplot)
  • geom_histogram(): Histogramm
  • geom_bar(): Balken
  • geom_boxplot(): Boxplot
  • geom_line(): Linien

3.2 Aesthetics (aes)

  • x=… und y=…
  • color=… (Farbe nach einer kategorialen Variable)
  • size=… (Punktgröße)
  • fill=… (Füllfarbe bei Boxplot/Bars)

Beispiel: Farbige Punkte nach „class“

ggplot(data=mpg, aes(x=displ, y=hwy, color=class)) +

  geom_point()

Jede Autoklasse (z.B. „suv“, „compact“) bekommt eigene Farbe.

Verschiedene Diagrammtypen

Scatterplot

ggplot(data=mpg, aes(x=displ, y=hwy)) +

  geom_point() +

  labs(title="Streudiagramm displ vs hwy",

       x="Hubraum", 

       y="Kraftstoffeffizienz")
  • labs() für Titel und Achsenlabels.

Histogramm

ggplot(mpg, aes(x=hwy)) +

  geom_histogram(binwidth=2, fill="steelblue", color="white") +

  labs(title="Histogramm der Kraftstoffeffizienz (hwy)")
  • binwidth=2: Klassenbreite im Histogramm

Boxplot

ggplot(mpg, aes(x=class, y=hwy, fill=class)) +

  geom_boxplot() +

  theme_minimal() +

  labs(title="Boxplot hwy nach Fahrzeugklasse")
  • fill=class: Jede Box anders eingefärbt.
  • theme_minimal(): Anderes „Theme“.

Balkendiagramm

Wenn Du eine kategoriale Variable zählen willst, nimm geom_bar():

ggplot(mpg, aes(x=class)) +

  geom_bar(fill="orange") +

  labs(title="Anzahl Fahrzeuge pro Klasse")

Anmerkung: Her wird intern stat=“count“ angewendet, weil Du keine y-Angabe hast.

Faceting, Themes & weitere Tricks

Faceting

Splittet den Plot in mehrere Panels:

ggplot(mpg, aes(x=displ, y=hwy)) +

  geom_point(aes(color=class)) +

  facet_wrap(~class) +

  labs(title="Faceting nach Klasse")

Erzeugt mehrere Scatterplots, je Panel eine Klasse.

Themes

  • theme_bw()
  • theme_minimal()
  • theme_classic()

Du kannst auch eigene Themes basteln. Themes ändern Hintergrund, Achsenlinien, Schriftarten usw.

Legenden, Skalierungen

Du kannst z.B. die Farben-Skala anpassen:

ggplot(mpg, aes(x=displ, y=hwy, color=class)) +

  geom_point() +

  scale_color_brewer(palette="Set1") +

  labs(title="Mit eigener Farbpalette")

Zusammenfassung

Jetzt weißt Du, wie Du mit ggplot2:

  • Daten über ggplot(data=…, aes(…)) definierst,
  • Geoms wie geom_point(), geom_boxplot() hinzufügst,
  • Facets und Themes nutzt,
  • Farben, Labels und Achsen anpasst.

ggplot2 ist für viele Menschen DER Standard in R, wenn es um schöne, flexible Grafiken geht. Es braucht etwas Einarbeitung, aber dann kannst Du professionelle Resultate erzielen – sei es für Forschungsberichte, Präsentationen oder Blogs.

Alles klar?

Ich hoffe, der Beitrag war für dich soweit verständlich. Wenn du weitere Fragen hast, nutze bitte hier die Möglichkeit, eine Frage an mich zu stellen!