Achsen, Legende & Titel

Achsen

Oftmals müssen die Achsen angepasst werden, um die Daten besser darzustellen. Wenn du dich gerade ausprobiert hast und versucht hast die Werte überhalb der Balken anzeigen zu lassen, ist es womöglich passiert, dass nicht mehr alle Werte von jedem Balken angezeigt wurden. Dies lag daran, dass die y-Achse zu kurz ist. Du kannst die Achsen ganz einfach in der Funktion scale_x_continuous() begrenzen. continuous wird hier genutzt, weil es die Hua (Typ integer oder numeric) handelt. Dort nutzt du für die Begrenzung das Argument limits = c(...) und gibst darin das Minimum und das Maximum an.

barplotBeyonce <- barplotBeyonce +
  geom_text(
    stat = "count", 
    aes(label = ..count..), 
    vjust = -2.5, 
    size = 8,
    color = "white"
  ) +
  scale_y_continuous(
    limits = c(
      0, 
      1750
    )
  )

barplotBeyonce
## Warning: The dot-dot notation (`..count..`) was deprecated in ggplot2 3.4.0.
## ℹ Please use `after_stat(count)` instead.
## This warning is displayed once every 8 hours.
## Call `lifecycle::last_lifecycle_warnings()` to see where this warning was
## generated.

Ebenso kannst du in der Funktion scale_y_continuous die Achsenmarkierungen bestimmen. Dies machst du im Argument breaks und gibst dort einfach eine Sequenz an.

barplotBeyonce <- barplotBeyonce + 
  scale_y_continuous(
    breaks = seq(
      0, 
      1750, 
      100
    ),
    limits = c(
      0,
      1750
    )
  )

barplotBeyonce

Das gleiche geht für die x-Achse: Du weißt, dass die Variable edu ein Faktor mit fünf Leveln (plus NA) ist. Es handelt sich also nicht um eine kontinuierliche Variable. Daher benutzt du hier die Funktion scale_x_discrete().

barplotBeyonce <- barplotBeyonce + 
  scale_x_discrete(
    limits = c(
      "ES-ISCED I", 
      "ES-ISCED II",
      "ES-ISCED III",
      "ES-ISCED IV",
      "ES-ISCED V", 
      NA
    )
  ) 

barplotBeyonce

Du musst also bei nicht-kontinuierlichen Variablen die Ausprägungen anzeigen, die angezeigt werden sollen.

Überlege bzw. probiere aus, wie du die <code>NA</code>-Kategorie ausschließen kannst?
Du möchtest die Reihenfolge ändern, von der höchsten zur niedrigsten Ausprägung. Wie kannst du das machen?

Legende

Gerade erscheint die Legende rechts. Du kannst das beliebig ändern mit dem Argument legend.position innerhalb der zusätzlichen Funktion theme():

barplotBeyonce +
  theme(legend.position = "bottom") # left, right, top oder none

Auch die Beschriftung der Legende kannst du anpassen:

barplotBeyonce + 
  scale_fill_manual(
    name = "Bildungsniveau",
    labels = c(
      "sehr niedrig", 
      "niedrig",
      "mittel",
      "hoch",
      "sehr hoch", 
      "NA"
    ),
    values = beyonce_palette(25)
  )

Titel

Jetzt fehlen noch angepasste Achsenbeschriftungen und Titel!

barplotBeyonce + 
  labs(
    x = "Bildungsniveau", 
    y = "Häufigkeiten",
    title = "My first try with ggplot2"
  )

Alles im Überblick? Gehe weiter!