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 die „Grammar of Graphics"
  • ggplot2 baut Grafiken schichtweise auf
  • Ein oder mehrere geometrische Objekte werden zur Basis hinzugefügt
R für SAS-Anwender:innen

Schichten – Basisschicht

# 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 bereit für sex
  • y-Achse bereit für diameter
  • 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()
  • Der 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 und M Männchen

ggplot2 boxplots added

R für SAS-Anwender:innen

Schichten – ein 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 in Violin-Geom ändern

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

ggplot2 violin plot

R für SAS-Anwender:innen

Eindimensionales Histogramm

# 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 sollten angepasst werden

ggplot2 histogram all black

R für SAS-Anwender:innen

Histogramm einfärben

# Make lines black and fill light blue
ggplot(abalone, aes(shuckedWeight)) +
  geom_histogram(color = "black",
                 fill = "lightblue")
  • Grafische Parameter ändern
  • color der Balkenumrandung setzen
  • fill-Farbe der Balken setzen
  • Optionen jeweils in den () 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 Achsenbeschriftungen und Titel hinzufügen
  • xlab() und ylab() für Achsen verwenden
  • ggtitle() für den Titel verwenden
  • 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 der Schalengewichte nach Ringen

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
  • Mit schattiertem Konfidenzbereich

ggplot2 scatterplot with smoothed fit line added

R für SAS-Anwender:innen

Panels nach weiterer Variable erstellen

# Add panels using facet_wrap()
ggplot(abalone,
       aes(rings, shellWeight)) +
  geom_point() +
  geom_smooth() +
  facet_wrap(vars(sex))
  • Eine weitere Schicht zum Streudiagramm
  • Panels je Abalone-Geschlecht erstellen
  • facet_wrap()-Schicht hinzufügen
  • vars(sex) legt die Panel-Variable fest

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-Grafiken
    • Abalone-Messungen nach Geschlecht visualisieren
  • Kapitel 2 vermittelt Data-Wrangling-Skills
    • Abalone-Datensatz bereinigen
  • Kapitel 3 behandelt Datenexploration
    • Deskriptive 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 ein paar Grafiken zu Abalonen erstellen

R für SAS-Anwender:innen

Preparing Video For Download...