Kapitel 4 Einführung in ggplot2

  • Aufbau des Aufrufs der Funktion ggplot() kennen
  • fünf wichtigste Grafiktypen kennen und einsetzten

4.1 Aufbau eines Visualisierungsbefehls

Das Paket ggplot2 ist ein sehr mächtiges Visualisierungswerkzeug. Der Name steht für “the grammar of graphics”. Das bedeutet, dass man mithilfe von verschiedenen Funktion in ggplot2 seine Grafik Schritt für Schritt aufbaut, wie einen (grammatikalisch korrekten) Satz. In aller Kürze bedeutet das:

Eine statistische Grafik ist eine Zuordnung (mapping) von Variablen in einem Datensatz (data) zu (ästhetischen) Attributen (aes) von geometrischen Objekten (geom).

Wir müssen also für das Visualisieren Folgendes festlegen:

  1. data: der Datensatz, der die Variablen enthält, die wir darstellen möchten.

  2. aes: (ästhetische) Attribute für die geometrischen Objekte, die dargestellt werden sollen. Diese Attribute sind, z.B. die x und y Koordinaten, Farbe, Form und Größe der geometrischen Objekte

  3. geom: geometrische Objekte, die dargestellt werden sollen, z.B. Punkte, Linien, Boxen, Säulen etc.

Wir laden zunächst die nötigen Bibliotheken und filtern den Datensatz gapminder, um nur die Daten aus dem Jahr 2007 zu visualisieren.

library(ggplot2)
library(gapminder)

gapminder2007 <- gapminder %>% 
  filter(year == 2007)

4.2 Punktdiagramm

Ein typischer Befehl zur Visualisierung würde also so aussehen:

ggplot(data = gapminder2007, mapping = aes(x = gdpPercap, y = lifeExp, color = continent, size = pop)) +
  geom_point()

In Worten könnte man es vielleicht wie folgt umschreiben:

  1. Nimm den Datensatz (data) gapminder und

  2. ordne folgende Attribute zu:

    1. auf die x-Achse die Variable gdpPercap
    2. auf die y-Achse die Variable lifeExp
    3. färbe ein mithilfe der Variablen continent
    4. bestimme die Größe der Symbole mithilfe der Variablen pop
  3. Stelle das Ganze als geometrisches Objekte Punkte dar (geom_point())

Sie sehen, dass diese Zuordnungen klar nach einer Legende verlangen, die dann auch automatisch, sowohl für die Farbe als auch für die Größe der Symbole, erstellt wird.

Die Anweisungen zur Visualisierung in ggplot2 werden mit einem + verbunden. Man kann (und in diesem Fall soll) weitere Anweisungen geben. Z.B. sind die Beschriftungen der beiden Achsen so nichtssagend und müssen verbessert werden. Wir hängen mit einem +-Zeichen weitere Befehle hinzu:

ggplot(data = gapminder2007, mapping = aes(x = gdpPercap, y = lifeExp, color = continent, size = pop)) +
  geom_point() + 
  labs(x = 'Bruttoinlandsprodukt pro Kopf (US$)', y = 'Lebenserwartung (Jahre)',
       color = 'Kontinent', size = 'Bevölkerung')

4.3 Weitere geoms

Das geom_point() produziert eine xy-Grafik (scatter plot). Weiter wichtige Grafiktypen sind

4.4 Liniendiagramm

Es ergibt wenig Sinn, die obere Grafik mit Linien darzustellen. Allerdings eignen sich Linien ausgezeichnet, um einen zeitlichen Verlauf zu visualisieren. Daher filtern wir aus dem Datensatz gapminder die Zeitreihen für Frankreich und Deutschland heraus. Weil wir jetzt zwei Länder haben möchten, muss beim Filtern ein Vektor mit Ländernamen angegeben werden und statt == der Operator %in%. Wir werden später noch ausführlich auf diese Operatoren zurückkommen.

france_germany <- gapminder %>% 
  filter(country %in% c('France', 'Germany'))
ggplot(data = france_germany, mapping = aes(x = year, y = gdpPercap, color = country)) +
  geom_line()

4.5 Histogramm

Wie ist das GDP im Jahre 2007 in Afrika und Europa verteilt? Dazu nutzen wir das Histogramm und filtern die Daten vorher entsprechend. Als Ästhetik eignet sich hier fill besser als color.

africa_europe <- gapminder2007 %>% 
  filter(continent %in% c('Africa', 'Europe'))

ggplot(africa_europe, mapping = aes(x = gdpPercap, fill = continent)) +
  geom_histogram(bins = 20)

4.6 Boxplot

Wie ist das GDP im Jahre 2007 auf verschiedenen Kontinenten verteilt? Ein Histogramm mit allen Kontinenten würde schnell sehr unübersichtlich werden. Das geht mit einem Boxplot besser.

ggplot(gapminder2007, mapping = aes(x = continent, y = gdpPercap)) +
  geom_boxplot()

4.7 Säulendiagramm

Wie viele Einträge gibt es pro Kontinent? Das Säulendiagramm zählt für uns die Einträge im Datensatz zusammen

ggplot(data = gapminder, mapping = aes(x = continent)) +
  geom_bar()

4.8 Lesestoff

Kapitel 2.1 in Ismay and Kim (2021)

4.9 Aufgaben

4.9.1 Grafiken richtig beschriften

Bis auf die Grafik in 4.4 fehlen bei den Grafiken oben ordentliche Achsenbeschriftungen und Titel für die Legenden. Ergänzen Sie den Code entsprechend.

4.9.2 Zeitreihen

Stellen Sie den zeitlichen Verlauf der Lebenserwartung in fünf europäischen Ländern Ihrer Wahl dar. Färben Sie die Linien nach Ländern.

4.9.3 Boxplots

Stellen Sie die Lebenserwartung im Jahr 1952 und im Jahr 2007 pro Kontinent dar. Das sind zwei verschiedene Boxplots.

4.10 Ihre Arbeit einreichen

  • Speichern Sie Ihr Notebook ab.
  • Laden Sie Ihre .Rmd Datei in ILIAS hoch. Beachten Sie die Frist!
  • Sie erhalten die Musterlösung nach dem Hochladen.