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!