Boxplot in R erstellen

von | Zuletzt bearbeitet am: Apr 21, 2024 | Boxplot, R

Hinweis: Für eine ausführliche Interpretation von erstellten Boxplots gibt es einen speziellen Artikel.

1 Boxplot über die Funktion “boxplot()” erstellen

Am einfachsten gelingt das Erstellen eines Boxplots über die gleichnamige Funktion “boxplot()“.

 

1.1 Der einfache Boxplot

Der Code hierfür ist auch denkbar einfach. Hier wird ein Boxplot für die Variable “Gewicht” im Dataframe “df” erstellt:


boxplot(df$Gewicht)

Das führt zu folgendem Ergebnis:
einfacher Boxplot R

 

1.2 Der gruppierte Boxplot

Hat man zwei Gruppen, z.B. das Geschlecht der Probanden, das man vergleichen möchte, verwendet man eine leicht geänderte Funktion mit der abzutragenden Variable, gefolgt von “~” und der Gruppenvariable:


boxplot(df$Gewicht~df$Geschlecht)

Hier erhält man nun zwei Boxplots:
Boxplots für Gruppen in R

Die Beschriftung der Achsen und Kategorien wird automatisch von R auf Basis der vorliegenden Daten vorgenommen. Für die Achsen kann und sollte sie noch manuell geändert werden. Hierzu verwendet man die Argumente xlab=”” und ylab=””. .

Hinweis: Die Gruppenvariable (hier: Geschlecht) sollte als Faktor vorliegen und jene auch definiert sein.

Konkret sieht die Funktion für beide Argumente wie folgt aus:


boxplot(df$Gewicht~df$Geschlecht,
        xlab = "Geschlecht", ylab = "Gewicht")

Boxplots für Gruppen in R

Sollte das Diagramm zusätzlich einen Titel (z.B. “Gewicht der Probanden nach Geschlecht”) benötigen, verwendet man main=”Gewicht der Probanden nach Geschlecht” in der boxplot()-Funktion.

 

1.3 Der eingefärbte Boxplot

Neben der Beschriftung kann auch eine farbige Unterscheidung erfolgen. Hierzu werden die Boxplots mit der col()-Funktion eingefärbt. Der Boxplot für Männlich soll z.B. blau (“steelblue”) und der Boxplot für Weiblich hellgrün (“lightgreen”) gefärbt werden: col=(c(“lightgreen”,”steelblue”)).

Je nachdem, wie viele Gruppen existieren, sind weitere Farben hinzuzufügen. Es ist zwingend notwendig beim Argument “col” die Farben mit c(“Farbe 1”, …, “Farbe n”) aufzulisten. Die Farben werden entsprechend von links nach rechts entsprechend der Sortierung der Gruppen zugewiesen. Da ich Begriffe für meine Faktoren definiert habe und Frau alphabetisch vor Mann steht, wird der Gruppe Frau die erste in col() genannte Farbe zugewiesen.


boxplot(df$Gewicht~df$Geschlecht,
        xlab = "Geschlecht", ylab = "Gewicht", 
        col=(c("lightgreen","steelblue")))

eingefärbte Boxplots für Gruppen in R

Zu weiteren Auswahlmöglichkeiten von Farben in R, gibt es einen ausführlichen Artikel: Farben in R, der „col“-Befehl.

 

1.4 Wertebereich der y-Achse definieren

Je nach Wertebereich kann es sein, dass die y-Achse nicht bei 0 anfängt. Dies kann mit dem Argument “ylim=” noch ergänzt werden. Hierzu sind der obere und untere Wertebereich innerhalb von ylim zu definieren:


boxplot(df$Gewicht~df$Geschlecht,
        xlab = "Geschlecht", ylab = "Gewicht", 
        col=(c("lightgreen","steelblue")),
        ylim = c(0,120))

Boxplot für Gruppen in R

Je nach Darstellung kann es sinnvoll sein, hier ein wenig zu experimentieren. Da Gewichte unter 40kg wohl eher selten sind, kann hier theoretisch das untere Limit höher angesetzt werden.

Weitere Anpassungsmöglichkeiten der Achsen zeigt dieser Beitrag.

 

2 Boxplot über die Funktion “ggplot()” erstellen

Die ggplot()-Funktion ist sehr umfangreich bzw. erlaubt sehr viele Detailänderungen. Auf die meiner Meinung nach wichtigsten werde ich nachfolgend eingehen.

Zunächst muss sie über den Befehl library(ggplot2) geladen werden. Habt ihr ggplot2 nicht installiert, könnt ihr das über den Befehl install.packages(“ggplot2”) tun.

 

2.1 Der einfache Boxplot

In meinem Fall liegt die abzutragenden Daten im Dataframe “df”. Das ist das erste Argument in der ggplot()-Funktion. Danach kommt die aes()-Funktion. Hier lege ich mit y=Gewicht fest, dass ich für Gewicht einen Boxplot erstellen möchte.


install.packages("ggplot2")
library(ggplot2)
ggplot(df, aes(y = Gewicht))

Das Ergebnis ist zunächst nur ein leeres Koordinatensystem mit der entsprechenden Beschriftung:

ggplot R leeres Diagramm

 

Als Nächstes folgt der Boxplot-Befehl. (+ geom_boxplot()), der den Boxplot hinzufügt. Da bereits oben definiert wurde, dass das Gewicht abgetragen wird, braucht es nichts weiter:


ggplot(df, aes(y = Gewicht)) + geom_boxplot()

Einfacher Boxplot ggplot R

 

2.2 Der gruppierte Boxplot

Hier wird es nun deutlich einfacher als mit der oben gezeigten Variante. Lediglich der Befehl “x=” ist einzufügen:


ggplot(df, aes(y = Gewicht, x = Geschlecht)) +
  geom_boxplot()

Dies bewirkt das Aufteilen der Boxplots in zwei oder mehr Gruppen und beschriftet die Boxplots auch direkt:
Boxplot für Gruppen ggplot R

 

2.3 Der eingefärbte Boxplot

Auch die Einfärbung ist kein Problem. Hier muss in die geom_boxplot()-Funktion einfach das Argument “fill” eingesetzt werden und analog zu oben mit der c()-Funktion Farben eingefügt werden. Das sieht dann wie folgt aus:


ggplot(df, aes(y = Gewicht, x = Geschlecht )) +
  geom_boxplot(fill=c("lightgreen", "steelblue"))

Das hat folgendes Ergebnis:
Gefärbte Boxplots für Gruppen ggplot R

 

2.4 Wertebereich der y-Achse definieren

Je nach Wertebereich kann es sein, dass die y-Achse nicht bei 0 anfängt. Dies kann mit dem Argument “ylim()” noch ergänzt werden. Hierzu sind der obere und untere Wertebereich innerhalb von ylim zu definieren und mittels “+” an einer beliebigen Stelle anzuhängen:


ggplot(df, aes(y = Gewicht, x = Geschlecht )) +
  ylim(0,120) +
  geom_boxplot(fill=c("lightgreen", "steelblue"))

Gefärbte Boxplots für Gruppen ggplot R

 

2.5 Whisker bearbeiten

Sollen die Fehlerbalken (“Whisker”) den typischen horizontalen Strich erhalten, benötigt man die Funktion stat_boxplot(). In ihr wird mit geom = “errorbar” die Definition vorgenommen.

Da die Fehlerbalken standardmäßig über die gesamte Breite der Box gezeichnet werden, empfiehlt sich zur Verkleinerung noch das Argument width = 0.5 innerhalb von stat_boxplot().


ggplot(df, aes(y = Gewicht, x = Geschlecht)) +
  ylim(0,120) +
  stat_boxplot(geom = "errorbar", width=0.5) +
  geom_boxplot(fill=c("lightgreen", "steelblue"))

Gefärbte Boxplots für Gruppen ggplot R

 

Hinweis: Die Elemente werden in der Reihenfolge der Zeilen gezeichnet. Damit die Boxen vor den Whiskern gezeichnet werden, werden sie im Code auch erst als letztes afugeführt.

Es gibt noch viele weitere sinnvolle Funktionen, bspw. wenn ihr die Boxplots drehen wollt. Dafür verwendet ihr einfach “+ coord_flip()“.

Weitere Befehle gibt es hier bzw. zeige ich sie in den Videotutorials.

 

3 Videotutorials Boxplots in R




Hat dir der Beitrag geholfen?

Dann würde ich mich über eine kleine Spende freuen, die es mir erlaubt, weiterhin kostenfreie Inhalte zu veröffentlichen.
Alternativ kannst du über meinen Amazon Affiliate-Link einkaufen – ohne Zusatzkosten.

Vielen Dank und viel Erfolg!

Über mich

Björn Walther

Ein 💚 für Statistik & Datenanalyse

Excel Online-Kurs

YouTube-Kanal

Inhalt