06 Visualisierungen

Einführung in die quantitativen Forschungsmethoden

Quiz zur letzten Sitzung

Quiz Link

Grundprinzipien der Visualisierung

Grundprinzipien

Welche Visualisierungen finden Sie hilfreich, welche weniger?

Weniger ist mehr

  • Edward Tufte: “Above all else show the data”
    • data-ink-ratio as proportion of ink devoted to non-redundant information

\(data-ink-ratio=\frac{data-ink}{total\ ink\ used\ to\ print\ figure}\)

Visuelle Merkmale

Bestimmte visuelle Merkmale (pre-attentive attributes) werden von unserem Auge vorgefiltert

  • Farben
  • Größe
  • einfache Formen
  • Länge von Linien

Andere Merkmale brauchen unser Bewusstsein

  • z.B. erkennen von Buchstaben & Zahlen

→ visuelle Merkmale können helfen Information prominenter zu machen

Visuelle Merkmale

Die hervorhebende Wirkung von visuellen Merkmalen hängt auch vom Kontext ab

Aufteilen von Grafiken

  • häufig ist Information besser auf mehrere, kleinere Grafiken verteilt (‘small multiples’)
    • → zerlegen in verschiedene daten-basierte Schichten
  • → Vergleiche zwischen Gruppen bieten sich visuell an

Mehr zu Wahrnehmung

  • z.B. in Healy (2018)

Visualisierungen und Forschung

Visualisierungen und Forschung

aus Traunmüller (2020), S. 437

Visualisierungen und Forschung

Die vier Grafiken zeigen

  • gleiche Mittelwerte für X & Y
  • gleiche Standardabweichungen für X & Y
  • gleiche Korrelationen zwischen X & Y

→ Visualisierungen helfen uns Zusammenhänge zu erkennen

Visualisierungen und Forschung

“Data visualization can be understood as a translation tool that assigns abstract numerical values to physical properties such as spatial position along a scale, the length of a bar or the geometric shape and color of a plotting symbol.

However, data visualization involves more than simply mapping numbers to visual stimuli. Ideally, data visualization is a method that helps us and our audience understand the political world by assisting analytical thinking.”

Traunmüller (2020), S. 437


→ Visualisierung als Form der Präsentation und Kommunikation

→ Visualisierung als Form der (explorativen) Analyse

Visualisierungen erstellen

Visualisierungen erstellen

In R hilft das ggplot2 Paket (Teil von tidyverse) beim Herstellen komplexerer Grafiken. Es ist ebenfalls in tidyverse enthalten.

library(tidyverse)

Beispiel: Zusammenhang Regierungs- & Demokratiezufriedenheit

Wir berechnen den Durchschnitt der Regierungs- (stfgov) und Demokratiezufriedenheit (stfdem)

library(haven)
ess8 <- read_dta("../data/ESS8e02_2.dta")

# gruppieren
ess8 <- group_by(ess8,cntry)

# zusammenfassen
democracy <- summarise(ess8,
                       mean_stfgov=mean(stfgov,na.rm=T),
                       mean_stfdem=mean(stfdem,na.rm=T))

Visualisierungen erstellen

ggplot() erstellt den Plot

ggplot(data=democracy)

Visualisierungen erstellen

  • Definition von Variablen als aesthetics mit aes()
    • x-Variable, y-Variable
  • geom_point() erzeugt einen Scatterplot basierend auf Werten
    • Achtung: Hinzufügen mit +
ggplot(data=democracy)+
  geom_point(aes(x=mean_stfgov,
                 y=mean_stfdem))

Geoms

  • geom_point() ist nur ein sogenanntes ‘geom’ → viele weitere in R
    • verschiedene geoms brauchen oft unterschiedliche aesthetics

Beispiel: geom_label() braucht eine Variable mit Label-Text → R-Dokumentation hilft

ggplot(data=democracy)+
  geom_label(aes(x=mean_stfgov,
                   y=mean_stfdem,
                   label=cntry))

Weitere visuelle Merkmale

  • Kontrolle weiterer Merkmale über aes
    • z.B. fill, color, shape, …
    • Verknüpfung mit Variable
democracy$cee <- ifelse(democracy$cntry %in%
                          c("CZ","EE","HU","LT","PL","SI"),
                        "CEE","other")
ggplot(data=democracy)+
  geom_point(aes(x=mean_stfgov,
           y=mean_stfdem,
           color=cee,
           shape=cee))

Faceting

  • mit facet_wrap() kann man small multiples erzeugen und den Plot entlang einer Variable ‘schichten’
democracy$lowhigh <- ifelse(democracy$mean_stfdem>5,
                            "high","low")
ggplot(data=democracy,
       aes(x=mean_stfgov,
           y=mean_stfdem,
           label=cntry))+
  geom_label()+
  facet_wrap(~lowhigh)

Faceting

  • besonders hilfreich, wenn wir Statistiken für jede Facet berechnen
    • z.B. zeichnet geom_smooth() eine Regressionslinie (lm: lineares Modell)
ggplot(data=democracy,
       aes(x=mean_stfgov,
           y=mean_stfdem,
           label=cntry))+
  geom_smooth(method="lm")+
  geom_label()+
  facet_wrap(~lowhigh)

Geoms

  • Möglichkeit aes() für alle geoms zu definieren durch vorziehen der aes()-Definition in ggplot()
ggplot(data=democracy)+
  geom_label(aes(x=mean_stfgov,
           y=mean_stfdem,
           label=cntry))+
  geom_point(aes(x=mean_stfgov,
           y=mean_stfdem))

ggplot(data=democracy,
       aes(x=mean_stfgov,
           y=mean_stfdem,
           label=cntry))+
  geom_label()+
  geom_point()

Themes

Themes sind Möglichkeiten das Aussehen des Plots zu verändern

  • vorgefertigte komplette themes
  • Generierung eigener themes
plot <- ggplot(data=democracy)+
  geom_point(aes(x=mean_stfgov,
                 y=mean_stfdem,
                 color=cee))

Themes

plot
plot+theme_minimal()
plot+theme_bw()
plot+theme_classic()

Themes

Einige typische eigene Modifikationen

  • theme(legend.position="bottom") / theme(legend.position="none")
    • platziert Legende anders / verbirgt sie
  • theme(axis.text=element_text(size=4))
    • verändert Größe der Achsen-Annotation
plot+theme(legend.position="bottom")
plot+theme(axis.text=element_text(size=15))

Übersicht

  • Geoms: Art der Visualisierung
    • geom_point()
    • geom_label()
    • geom_smooth()
  • aesthetics: Variable Eigenschaften, in geom oder ggplot definiert
    • x, y
    • color, shape, fill etc.
  • Facets: facet_wrap()
  • Themes
    • theme_minimal(), theme_classic(), theme_bw()
  • CheatSheet

Übungen 1

Bearbeiten Sie den ersten Teil des Übungsfiles

Weitere Arten von Plots

Häufigkeitsverteilungen

  • als Histogramm mit geom_histogram()
    • zählt Kategorien aus
ggplot(data=ess8,aes(x=agea))+
  geom_histogram()

→ nützlich v.a. für wenige Kategorien

Häufigkeitsverteilungen

  • als weichgezeichnete Verteilung mit geom_density()
    • Häufigkeitsverteilung, keine direkten Werte → sinnvoll für viele Kategorien
  • hier wird fill als ‘attribute’ verwendet (siehe cheat sheet), d.h. es ist nicht mit einer Variable verknüpft und steht deswegen nicht in aes, sondern im geom
ggplot(data=ess8,aes(x=agea))+
  geom_density(fill="turquoise",alpha=0.4)

→ geeigneter für viele Kategorien

Bar chart

  • Bar charts mit geom_col()
    • auch geom_bar(stat="identity")
    • geom_bar() zählt Häufigkeit, geom_col() und geom_bar(stat="identity") funktionieren, wenn wir die Häufigkeit schon berechnet haben
# sortieren der Werte
democracy <- democracy %>%
  arrange(mean_stfgov) %>%
  mutate(cntry=factor(cntry,cntry))

# Grafik
ggplot(data=democracy,
       aes(x=mean_stfgov,xend=0,
           y=cntry, yend=cntry))+
  geom_col()

Bar chart 2

  • Bar charts können auch die Häufigkeit von Werten anzeigen
    • das ist die Standardeinstellung bei geom_bar() !
ggplot(data=ess8,
       aes(x=stfgov))+geom_bar()

Lollipop chart

# sortieren
democracy <- democracy %>%
  arrange(mean_stfgov) %>%
  mutate(cntry=factor(cntry,cntry))

# lollipop chart
ggplot(data=democracy,
       aes(x=mean_stfgov,xend=0,
           y=cntry, yend=cntry))+
  geom_segment()+
  geom_point()

→ Achtung: geom_segment() braucht auch xend und yend als Spezifikation, weil es eine Fläche zwischen diesen Punkten markiert!

Lollipop chart

democracy$col <- ifelse(democracy$cntry=="DE","highlight","else")
ggplot(data=democracy,
       aes(x=mean_stfgov,xend=0,
           y=cntry, yend=cntry,
           # Definition Farbe
           color=col))+
  geom_segment()+
  geom_point()+
  # Legende unterdrücken
  theme_minimal() + theme(legend.position="none")+
  # zuweisen von Farben
  scale_color_manual(values=c("gray","#094782"))

Karten

z.B. ESS Karte ist auch mit R erzeugt

Figure 1: Länder nach ESS-Runde

→ …aber etwas komplizierter → nur für Extra-motivierte

Inspirationen

Inspirationen

Aufgabe

Bearbeiten Sie das Übungsfile

Erstellen Sie eine Visualisierung für Ihre Forschungsfrage

Nächste Woche: Visualisierungen - Teil 2

Referenzen

Healy, Kieran. 2018. Data Visualization: A Practical Introduction. Princeton, NJ: Princeton University Press.
Traunmüller, Richard. 2020. “Visualizing Data in Political Science.” In The SAGE Handbook of Research Methods in Political Science and International Relations, 436–60. 1 Oliver’s Yard, 55 City Road London EC1Y 1SP: SAGE Publications Ltd. https://doi.org/10.4135/9781526486387.n28.