Start: Scatterplot

Wir nutzen Scatterplots (Punktewolken), wenn wir zwei (pseudo-)metrische Variablen darstellen möchten. Dazu nutzen wir die Funktion geom_point().

Oftmals haben wir lediglich pseudometrische Variablen, dennoch können wir trotzdem Scatterplots zur Visualisierung nutzen. Wir nutzen nun trstplt und trstprt. Falls du nicht mehr weißt, wofür diese Variablen stehen, schaue im Codebook nach!

scatter <- ggplot(
  pss, 
  aes(
    trstplt, 
    trstprt
  )
) + 
  geom_point()

scatter
## Warning: Removed 28 rows containing missing values or values outside the scale range
## (`geom_point()`).

Jitter

Um nun mehr auf dem Plot erkennen zu können, müssen wir die Datenpunkte streuen, damit sie nicht alle überlappen. Denn auf einer pseudo-metrischen Variablen haben wir ja meist nur ganzzahlige Werte, so dass Datenpaare überlappen. Dazu nutzen wir die Funktion geom_jitter():

scatter <- scatter +
  geom_jitter(
    width = 0.3,
    height = 0.3
  )

scatter
## Warning: Removed 28 rows containing missing values or values outside the scale range
## (`geom_point()`).
## Removed 28 rows containing missing values or values outside the scale range
## (`geom_point()`).

In den Argumenten in geom_jitter() gibst du an, wie weit die Datenpunkte jittern sollen. Probiere es einfach ein paar Mal mit unterschiedlichen Werten aus.

Beschriftungen

Nun fügen wir noch Beschriftungen und Titel hinzu.

scatter +
  geom_point() +
  geom_jitter(
              width = 0.3, 
              height = 0.3
              ) +
  labs(
       x = "Trust in Politicians", 
       y = "Trust in Legal System", 
       title = "Trust Scatterplot"
       )

Und verändern das Erscheinungsbild des Titels: Innerhalb der Funktion theme() ändern wir noch die Darstellung, was die Argumente genau machen, lernst du Kapitel 3 kennen!

scatter <- scatter +
  labs(
    x = "Trust in Politicians",
    y = "Trust in Legal System", 
    title = "Trust Scatterplot"
  ) +
  theme(
    plot.title = element_text(
      face = "bold", 
      hjust = 0.5, 
      size = 16
    )
  )
scatter
## Warning: Removed 28 rows containing missing values or values outside the scale range
## (`geom_point()`).
## Removed 28 rows containing missing values or values outside the scale range
## (`geom_point()`).

Die Datenquelle geben wir auch an. Dies fügen wir mit der Funktion lab()und dem Argument caption hinzu:

scatter <- scatter + 
  labs(caption = "Data source: Panem Social Survey.")

scatter
## Warning: Removed 28 rows containing missing values or values outside the scale range
## (`geom_point()`).
## Removed 28 rows containing missing values or values outside the scale range
## (`geom_point()`).

Achsen

Die Variable hat nur ganzzahlige Werte, die Markierungen sind aber immer im Halbpunkt. Das ändern wir nun:

scatter <- scatter +
  scale_y_continuous(
    breaks = seq(
      0, 
      10, 
      1
    )
  ) + 
  scale_x_continuous(
    breaks = seq(
      0,
      10,
      1
    )
  )

scatter
## Warning: Removed 28 rows containing missing values or values outside the scale range
## (`geom_point()`).
## Removed 28 rows containing missing values or values outside the scale range
## (`geom_point()`).

Regressionslinie

Ebenso können wir bereits eine Regressionlinie für den Zusammenhang zwischen den zwei Variablen einzeichnen. Dazu nutzen wir die Funktion geom_smooth(). Im Argument method geben wir an, dass es sich um ein lineares Modell handelt (lm), das Konfidenzintervall soll eingezeichnet werden (se = TRUE) und wir legen Farben fest.

scatter + 
  geom_smooth(
    method = "lm", 
    se = TRUE, 
    color = "darkred",
    fill = "orange"
  )
## Warning: Removed 28 rows containing non-finite outside the scale range
## (`stat_smooth()`).
## Warning: Removed 28 rows containing missing values or values outside the scale range
## (`geom_point()`).
## Removed 28 rows containing missing values or values outside the scale range
## (`geom_point()`).

Weiter geht’s und du fügst jetzt eine Gruppenvariable hinzu!