Grafische Visualisierungen in R mit ggplot2

R für SAS-Anwender:innen

Melinda Higgins, PhD

Research Professor/Senior Biostatistician Emory University

Paket ggplot2

ggplot2 hexsticker logo

  • ggplot2 ist ein leistungsstarkes Grafikpaket für R
  • „GG" in ggplot steht für „grammar of graphics"
  • ggplot2 baut Grafiken schichtweise auf
  • Ein oder mehrere Geoms werden zur Basis hinzugefügt
R für SAS-Anwender:innen

Schichten – Basislage

# Create plot for x=sex and y=diameter
ggplot(data = abalone, aes(sex, diameter))
  • Basis mit ggplot() definieren
  • data = abalone setzen
  • aes auf sex und diameter setzen

  • Noch keine grafischen Objekte

  • x-Achse für sex bereit
  • y-Achse für diameter bereit
  • Raster ist angelegt

ggplot2 graphic environment no boxplot yet

R für SAS-Anwender:innen

Schichten – Boxplot-Geom hinzufügen

# Add boxplot geometric object or geom
ggplot(data = abalone,
       aes(sex, diameter)) +
  geom_boxplot()
  • Plus-Operator + fügt eine Schicht hinzu
  • Boxplot geom_boxplot() hinzugefügt

  • Ergebnis ist eine Reihe von Boxplots

  • Abalone-Durchmesser nach Geschlecht
  • F Weibchen, I Jungtiere, M Männchen

ggplot2 boxplots added

R für SAS-Anwender:innen

Schichten – Theme hinzufügen

# Add black white theme
ggplot(data = abalone,
       aes(sex, diameter)) +
  geom_boxplot() +
  theme_bw()
  • „Theme"-Schicht mit theme_bw() hinzufügen
  • Entfernt den grauen Hintergrund
  • Zeichnet einen schwarzen Rahmen um die Grafik

ggplot2 boxplot black white theme added

R für SAS-Anwender:innen

Boxplot-Geom durch Violin-Geom ersetzen

# Change to geom_violin()
ggplot(data = abalone,
       aes(sex, diameter)) +
  geom_violin() +
  theme_bw()
  • geom_violin ersetzt geom_boxplot
  • Erzeugt eine geigenähnliche Form
  • Zeigt die Dichteverteilung der Daten
  • Mit kleinem Wechsel neue Grafik erzeugen

ggplot2 violin plot

R für SAS-Anwender:innen

Histogramm mit einer Variablen

# Make histogram of shuckedWeight
ggplot(abalone, aes(shuckedWeight)) +
  geom_histogram()
  • Histogramm für eine Variable erstellen
  • Eine Variable = ein Aesthetic
  • geom_histogram() hinzufügen
  • aes() auf shuckedWeight setzen
  • Standardfarben brauchen Anpassung

ggplot2 histogram all black

R für SAS-Anwender:innen

Histogramm – Farben hinzufügen

# Make lines black and fill light blue
ggplot(abalone, aes(shuckedWeight)) +
  geom_histogram(color = "black",
                 fill = "lightblue")
  • Grafische Parameter ändern
  • color der Klassenlinien setzen
  • fill-Farbe für Balken setzen
  • Optionen in den jeweiligen () setzen
  • Histogramm wirkt deutlich besser

ggplot2 histogram with blue bars and black lines around bars

R für SAS-Anwender:innen

Histogramm – Titel und Achsenbeschriftungen

# Add x, y axis labels and title
ggplot(abalone, aes(shuckedWeight)) +
  geom_histogram(color = "black",
                 fill = "lightblue") +
  xlab("Shucked Weight") +
  ylab("Frequency Counts") +
  ggtitle("Shucked Weights Histogram")
  • Bessere Achsen-Labels und Titel hinzufügen
  • Für Achsen xlab() und ylab() nutzen
  • Für den Titel ggtitle() nutzen
  • Diese Abbildung ist publikationsreif!

ggplot2 hitogram axis labels and title added

R für SAS-Anwender:innen

Streudiagramm erstellen

# Make scatterplot with geom_point()
ggplot(abalone,
       aes(rings, shellWeight)) +
  geom_point()
  • Ein Streudiagramm-aes braucht zwei Variablen
  • geom_point() fügt die Punkte hinzu
  • Streudiagramm: Schalengewicht nach Ringzahl

ggplot2 scatterplot of shellweight by rings

R für SAS-Anwender:innen

Streudiagramm – geglättete Linie hinzufügen

# Add smoothed fit line
ggplot(abalone,
       aes(rings, shellWeight)) +
  geom_point() +
  geom_smooth()
  • Zum Streudiagramm geom_smooth() hinzufügen
  • Beinhaltet schattierte Konfidenzfläche

ggplot2 scatterplot with smoothed fit line added

R für SAS-Anwender:innen

Panels nach weiterer Variable erzeugen

# Add panels using facet_wrap()
ggplot(abalone,
       aes(rings, shellWeight)) +
  geom_point() +
  geom_smooth() +
  facet_wrap(vars(sex))
  • Noch eine Schicht zum Streudiagramm
  • Panels für jedes Abalone-Geschlecht erstellen
  • facet_wrap()-Schicht hinzufügen
  • vars(sex) definiert die Panel-Variable

ggplot2 scatterplot with 3 panels by sex

R für SAS-Anwender:innen

Rest des Kurses

  • Kapitel 1 endet mit einer kurzen Einführung in Grafiken
    • Grundlage für ggplot2-Grafikskills
    • Abalone-Messungen nach Geschlecht visualisieren
  • Kapitel 2 behandelt Data-Wrangling
    • Abalone-Datensatz bereinigen
  • Kapitel 3 behandelt Datenexploration
    • beschreibende Statistik, Korrelationen, Vergleichstests
  • Kapitel 4 behandelt Modellierung und Ergebnispräsentation
    • Abalone-Alter aus Messungen vorhersagen
    • Modelle nach Geschlecht untersuchen
R für SAS-Anwender:innen

Lass uns für Abalonen ein paar Plots machen

R für SAS-Anwender:innen

Preparing Video For Download...