Grundlagen von ggplot2

Ein Beispiel

Zusammenhang zwischen Wirtschaftskraft und Treibhausgasemissionen im Jahr 2012

ggplot(data = d_wb_2012) +
  geom_point(mapping = aes(x=gdp, y=gge, fill=region, size=pop), shape=21) +
  scale_x_log10() + scale_y_log10() +
  labs(x="Bruttoinlandsprodukt", y="Treibhausgasemissionen", title="Jahr 2012")

Aufbau der Anweisung

  1. Einen Plot mit ggplot2 erstellen
  2. Datensatz, der visualisiert werden soll
  3. Zuordnung von Merkmalen zu Eigenschaften geometrischer Objekte
  4. Geometrische Objekte
  5. Skalen (später)
  6. Beschriftung (später)

Was ist ggplot2?

Ursprung

  • Umfangreiches Paket zur Visualisierung von Daten
  • Entwickelt von Hadley Wickham (Doktorarbeit)
  • Basiert auf dem Buch ‘The Grammar of Graphics’ von Leland Wilkinson
  • Sehr strukturiert, aber man muss sich hineindenken
  • Mit Quellcode frei verfügbar
  • Eine schöne Sammlung von Beispielen gibt es hier

Genereller Aufbau einer ggplot2 Anweisung



ggplot(data = <DATA>) +
  geom_<GEOM1>(mapping = aes(<AESTHETICS>), <ARGUMENTS>) +
  coord_<COORD>(<ARGUMENTS)> +
  facet_wrap(<ARGUMENTS>) +
  scale_<SCALE>(<ARGUMENTS>) +
  labs(<LABELS>) +
  theme(<THEME SETTINGS>)



→ Am Ende des Semesters werden Sie das verstehen!

Datensatz für diese Folien

Daten laden und anzeigen

Daten aus Datei laden

load("daten/data-lecture.Rdata")


Dataframe anzeigen

show(d_wb_2012)
# A tibble: 170 × 7
    year country                  pop      gge     gdp region              ig   
   <int> <chr>                  <dbl>    <dbl>   <dbl> <chr>               <fct>
 1  2012 Afghanistan         31161376  18169.  2.00e10 South Asia          Low …
 2  2012 Albania              2900401   8899.  1.23e10 Europe & Central A… Uppe…
 3  2012 Algeria             37383887 176471.  2.09e11 Middle East & Nort… Uppe…
 4  2012 American Samoa         55667     58.8 6.44e 8 East Asia & Pacific Uppe…
 5  2012 Angola              25107931  41657.  1.28e11 Sub-Saharan Africa  Lowe…
 6  2012 Antigua and Barbuda    90409    553.  1.21e 9 Latin America & Ca… High…
 7  2012 Argentina           41733271 380295.  5.46e11 Latin America & Ca… Uppe…
 8  2012 Armenia              2884229  12319.  1.06e10 Europe & Central A… Uppe…
 9  2012 Australia           22733465 761686.  1.55e12 East Asia & Pacific High…
10  2012 Austria              8429991  90460.  4.09e11 Europe & Central A… High…
# ℹ 160 more rows

Inhalt von Dataframe d_wb_2012

Spalte Deutsch Englisch (Originaltitel)
year Jahr Year
country Land Country
pop Bevölkerung Population, total
gge Treibhausgasemissionen kt CO2 äquivalent Total greenhouse gas emissions kt of CO2 equivalent
gdp Bruttoinlandsprodukt GDP (current US$)
region Region Region
ig Einkommensgruppe Income group

Funktionsweise von ggplot

Wie funktioniert ggplot?

ggplot(data = d_wb_2012) +
  geom_point(mapping = aes(x=gdp, y=gge, fill=region, size=pop), shape=21) +
  scale_x_log10() + scale_y_log10() +
  labs(x="Bruttoinlandsprodukt", y="Treibhausgasemissionen", title="2012")
  • Plot setzt sich aus Elementen zusammen, die mit + verbunden werden
  • ggplot(...) erzeugt leere Zeichenfläche
    • Dabei wird angegeben, welche Daten geplottet werden sollen
  • geom_point(...) fügt Ebene (Layer) mit Punkten (geometrische Objekte) hinzu
    • Es gibt viele andere geometrische Objekte (Linien, Balken, Text, …)
    • Das Mapping verknüpft Daten mit visuellen Eigenschaften der Objekte
  • Es folgen Einstellungen für Achsen, Beschriftungen, etc.

Daten und visuelle Eigenschaften

goem_point(mapping = aes(x = A, y = B, color = C, size = D))
  • Punkt hat visuelle Eigenschaften: x, y, Größe, Farbe
  • Mapping legt fest, welches Merkmal auf welche visuelle Eigenschaft abgebildet wird

→ Visuelle Eigenschaften heißen in ggplot Aesthetics (AES)

Datensatz für Beispiel erstellen und anzeigen

d_bsp <- tibble(
  A = c(1, 3, 2), 
  B = c(1, 2, 3), 
  C = c('u', 'v', 'u'), 
  D = c(5, 2, 4)
)

kable(d_bsp)
A B C D
1 1 u 5
3 2 v 2
2 3 u 4

Datensatz für Beispiel Plotten

ggplot(data = d_bsp) +
  geom_point(mapping = aes(x = A, y = B, color = C, size = D))

Geoms und Aesthetics



Beispiel mit Weltbankdaten

ggplot(data = d_wb_2012) +
  geom_point(mapping = aes(x=gdp, y=gge, color=region, size=pop))

Beispiel mit Weltbankdaten

ggplot(data = d_wb_2012) +
  geom_point(mapping = aes(x=gdp, y=gge, color=region, size=pop))
  • geom_point(...) sagt, dass Punkte geplottet werden sollen
  • Parameter mapping definiert Zuordnung von Merkmalen auf visuelle Eigenschaften
  • Zuordnung wird mit der Funktion aes(...) erzeugt. Hier:
    • Koordinaten nach BIP (gdp) und Emission (gge)
    • Farbe nach Region (region)
    • Größe entsprechend Bevölkerung (pop)

Beispiel mit Weltbankdaten (logarithmische Skala)

ggplot(data = d_wb_2012) +
  geom_point(mapping = aes(x=gdp, y=gge, color=region, size=pop)) +
  scale_x_log10() + scale_y_log10()