Vorbereitung
Installieren und laden Sie das Paket ggplot2, sofern noch nicht geschehen.
install.packages("ggplot2")
library(ggplot2)
Kopieren Sie nun bitte folgenden R-Code um den Übungsdatensatz mach zu laden und weitere vorbereitende Schritte auszuführen:
load(url("https://pandar.netlify.app/daten/mach.rda"))
# Variable hand (Schreibhand) als Faktor definieren
mach$hand <- factor(mach$hand, # Ausgangsvariable
levels = 1:3, # Faktorstufen
labels = c("rechts", "links", "beide")) # Bedeutung
# Variable gender (Geschlecht) als Faktor definieren
mach$gender <- factor(mach$gender,
levels = 1:3,
labels = c("weiblich", "männlich", "divers"))
# Variable urban (Ort des Aufwachsens) als Faktor definieren
mach$urban <- factor(mach$urban,
levels = 1:3,
labels = c("Rural (country side)", "Suburban", "Urban (town / city)"))
# Definition von drei Farben als Hex-Codes zur Verwendung in Aufgabe 4
mach_colors <- c("#00618f", "#e3ba0f", "#ad3b76")
Aufgabe 1
Erstellen Sie ein einfaches Balkendiagramm für die Variable hand aus dem mach-Datensatz.
- Formatieren Sie die Farbe der Balken in Abhängigkeit der Variable hand
- Wenden Sie das Theme
theme_minimal()an.
Lösung
ggplot(mach, aes(x = hand)) + # Erstellen eines leeren ggplots für den Datensatz 'mach' und der Variable 'hand' auf der x-Achse
geom_bar(aes(fill = hand)) + # Erweitern um eine Ebene mit Balkendiagramm. Festlegen der Farben der Balken in Abhängigkeit der Variable 'hand'
theme_minimal() # Verwendung des gefragten Themes
Aufgabe 2
Visualiseren Sie für jedes der drei Geschlechter (Variable gender) die Häufigkeit der Schreibhand (Variable hand). Es sollen drei Balken pro Schreibhand dargestellt werden.
- Formatieren Sie die Farbe der Balken in Abhängigkeit der Variable gender
- Fügen Sie einen schwarzen Rand zu den Balken hinzu
- Stellen Sie die Balken nebeneinander dar. (Die Voreinstellung gibt die Balken in einer gestaplten Ansicht aus.)
Lösung
ggplot(mach, aes(x = hand, group = gender)) + # Grundstruktur: x-Achse = 'hand', gruppiert nach 'gender'
geom_bar(aes(fill = gender), color = 'black', position = 'dodge') # Balken farbig nach Geschlecht, mit schwarzem Rand, nebeneinander dargestellt
Aufgabe 3
Erweitern Sie das gruppierte Balkendiagramm aus Aufgabe 2 um geeignete Beschriftungen.
- Vergeben Sie jeweils Titel und Untertitel, sowie Achsen- und Legendentitel
Lösung
ggplot(mach, aes(x = hand, group = gender)) +
geom_bar(aes(fill = gender), color = "black", position = "dodge") + # Gruppiertes Balkendiagramm wie in Aufgabe 2
labs(x = "Schreibhand", y = "Anzahl", fill = "Geschlecht") + # Achsen- und Legendentitel ergänzen
ggtitle("Verteilung der Schreihand nach Geschlecht", # Haupttitel
"(Daten aus dem mach-Datensatz)") # Untertitel
Aufgabe 4
Verwenden Sie nun die in der Variable mach_colors (Siehe Vorbereitung oben) manuell definierte Farbpalette, um die Balken mit den von uns gewählten Farben anzupassen.
Lösung
ggplot(mach, aes(x = hand, group = gender)) +
geom_bar(aes(fill = gender), color = "black", position = "dodge") + # Gruppiertes Balkendiagramm
scale_fill_manual(values = mach_colors) + # Eigene Farbpalette anwenden
labs(x = "Schreibhand", y = "Anzahl", fill = "Geschlecht") + # Beschriftungen setzen
ggtitle("Verteilung der Schreihand nach Geschlecht",
"(Daten aus dem mach-Datensatz)")
Aufgabe 5
Versuchen Sie unter der Verwendung der Variablen urban und pvhn die folgende Abbildung nachzubauen!

Lösung
ggplot(mach, aes(x = urban, y = pvhn, fill = urban)) +
geom_boxplot() +
scale_fill_manual(values = mach_colors) +
theme_minimal() +
labs(
x = "Childhood Environment", # x-Achsenbeschriftung
y = "Positive View of Human Nature", # y-Achsenbeschriftung
fill = "Urbanization Level" # Erklärende Legende statt Variablennamen "urban"
) +
ggtitle(
"Positive View of Human Nature by Childhood Environment", # Title des Boxplots
subtitle = "Grouped by self-reported urbanization level" # Subtitle des Boxplots
)