Säulendiagramm in R erstellen

von | Zuletzt bearbeitet am: Mar 1, 2024 | R, R-Diagramme


Mit einem Säulendiagramm tragt ihr typischerweise die Häufigkeiten von Merkmalsausprägungen in einer Grafik ab. Dieser Artikel zeigt ein Tutorial, wie ihr ein Säulendiagramm in R mit Bordmitteln (barplot()-Funktion) am schnellsten erstellt.

Zunächst müsst ihr eure Daten in R einlesen. Wahlweise löst ihr sie mit dem attach-Befehl aus dem Data Frame heraus. In diesem Artikel zeige ich die Variante mit Zugriff auf den Data Frame. Aufgrund dessen steht vor den jeweiligen Variablen stets mein Data Frame, der “data_xls” heißt sowie das Dollarzeichen ($) zur Verknüpfung. Ich zeige nachfolgend Schritt für Schritt den Aufbau. Wollt ihr ein Balkendiagramm erstellen, hilft euch dieser Artikel.

Für augenfreundliches Arbeiten empfehle ich euch diesen Artikel sehr.

 

1 Säulendiagramm in R – Die Säulen einfügen

Zuerst fangt ihr dem Befehl barplot an. Der grobe Aufbau sieht so aus:


barplot(height, ...)

 

Hier ist bereits erkennbar, dass es aufgrund des Arguments “height” vor allem um die Höhe der Säule geht, die abgetragen werden soll. Im Beispiel möchte ich für das Alter ein Säulendiagramm erstellen. Dabei gibt es zwei grundlegende Herangehensweisen:
 

1.1 Merkmal definiert die Säulenhöhe – für jeden Fall

Der erste Fall ist, dass jeder Fall/jede Person eine Säule bekommt. Deren Höhe wird durch die Ausprägung definiert. In meinem Falle ist im Dataframe data_xls die Variable Alter abgetragen. Zum Beispiel: Fall 1 ist 30 Jahre, Fall 2 ist 35 Jahre. Die erste Säule reicht demnach bis zur 30, die zweite bis zur 35 usw. An der y-Achse steht hier entsprechend das Alter. Die x-Achse, die hier noch unbeschriftet ist, repräsentiert die Fallnummer von 1 bis zum letzten Fall. Es leuchtet ein, dass man mit so einem Säulendiagramm nicht unbedingt viele Fälle sinnvoll bzw. übersichtlich darstellen kann.


barplot(data_xls$Alter)

Säulendiagramm in R
 

1.2 Häufigkeiten des Merkmals definiert die Säule

Hierbei werden die Häufigkeiten gezählt und diese abgetragen. Dabei erscheint nun auf der x-Achse das Merkmal, also im Beispiel das Alter, und auf der y-Achse entsprechend die Häufigkeiten. Dies nennt man auch Histogramm. Hierzu muss man in R lediglich eine Häufigkeitstabelle als abzubildendes Argument in die Funktion barplot() eingeben. Hier erkennt man im Diagramm nun eine Zählung der Merkmalsausprägungen. Zum Beispiel kommt 27 dreimal vor, 28 fünfmal und so weiter. Die Häufigkeitstabelle wird mit dem einfachen Befehl “table()” erstellt. Der Code für das Diagramm sieht dann wie folgt aus:


barplot(table(data_xls$Alter))

Säulendiagramm mit Häufigkeiten in R
 

2 Säulendiagramm in R – Die Achsenbeschriftung anpassen

Wie man sehen kann, hat man in R ein einfaches Säulendiagramm, wahlweise ohne und mit Häufigkeitszählung erstellt. Allerdings fällt dem geneigten Leser sofort auf, dass die Beschriftung der Achsen noch fehlen und dies tunlichst geändert werden sollte. R trägt in euer Säulendiagramm standardmäßig keine Variablennamen ein. Diesem Umstand können wir recht schnell beheben. Das macht man mit den Befehlen “xlab” und “ylab“.

Für das erste Säulendiagramm schreibt man an die x-Achse die Fallnummer und an die y-Achse das Alter.  Wichtig sind die Anführungszeichen nach dem Gleichheitszeichen. Im Code sieht das dann wie folgt aus:


barplot(data_xls$Alter, xlab = “Fallnummer“, ylab = “Alter“)

 

Auf das Diagramm verzichte ich an der Stelle ausnahmsweise mal.

Wenn ich für das zweite Säulendiagramm (mit Häufigkeitszählung) die Achsenbeschriftungen “Alter in Jahren” für die x-Achse und “Häufigkeit” für die y-Achse festlegen möchte, mache ich das mit den gleichen Befehlen.


barplot(table(data_xls$Alter), xlab = “Alter“, ylab = “Häufigkeit“)

Säulendiagramm mit Häufigkeiten in R
 

3 Einen Titel vergeben

Jedes Diagramm verdient einen Titel. Zumindest dann, wenn ihr es in einer Präsentation verwendet. Das funktioniert mit dem Argument “main“. In meinem Falle soll die Abbildung heißen: “Häufigkeit des Alters”. Der Befehl heißt dann main=”Häufigkeit des Alters”. Auch hier muss man auf die Anführungszeichen achten.


barplot(table(data_xls$Alter), xlab = “Alter“, ylab = “Häufigkeit“, 
        main = “Häufigkeit des Alters“)


 

4 Achsen, Achsenbeschriftung und Titel formatieren

  • Die Größe der Achsenbeschriftung kann ebenfalls angepasst werden. Es kann durchaus sinnvoll sein, die Achsen bzw. deren Beschriftung etwas zu vergrößern. Mit dem Argument cex.axis werden die Achsenwerte in ihrer Größe verändert.
  • Das Argument cex.lab sorgt für eine andere Größe der Merkmals-, also der y-Achse, cex.names ist für die Kategorien, also die x-Achse verantwortlich.
  • cex.main für den Titel. In meinem Falle vergrößere ich die Achsenwerte und die Achsenbeschriftung des Streudiagramms etwas mit jeweils 1.5. Der Standardwert ist 1. Ihr könnt auch mit 0.5 eine Verkleinerung erzielen.
  • Möchte man auf der x-Achse zusätzlich Striche für jede Ausprägung haben, verwendet man den Befehl “axis.lty = 1“.
  • Das Argument “las” ermöglicht euch das Drehen der Werte auf den Achsen. 0 ist hier der Standard, 1 zeigt beide Beschriftungen parallel zur x-Achse. Mit “las=2” drehe ich nur die Beschriftung der x-Achse um 90° nach links und mit “las=3” drehe ich beide Beschriftungen um 90° nach links.

Der Code sieht wie folgt aus.


barplot(table(data_xls$Alter), xlab = “Alter“ , ylab = “Häufigkeit“, 
        main = “Häufigkeit des Alters“,
        cex.axis=1.5, cex.lab=1.5, cex.names = 1.5, 
        cex.main=1.5, axis.lty=1, las=2)

Säulendiagramm mit Häufigkeiten in R

 
 

5 Zusatz: Farbe der Säulen, Achsen und Achsenbeschriftungen ändern

Mit dem Argument “col” könnt ihr euren Säulen zusätzlich einen farbigen Anstrich geben. col.axis ist für die Achsen, col.lab für die Achsenbeschriftung und col.main für den Titel des Streudiagramms. Mit Farbe würde ich allerdings sparsam umgehen. Schwarze oder in Graustufen gehaltene Datenpunkte sind am unverfänglichsten. Dennoch, gibt es die Möglichkeit das Diagramm einzufärben, dazu kann man direkt die Farben in Anführungszeichen (z.B. col=”red”) einfügen. Zu den Farben in R gibt es hier noch mal einen ausführlichen Artikel: Farben in R, der „col“-Befehl.


barplot(table(data_xls$Alter), xlab = “Alter“ , ylab = “Häufigkeit“, 
        main = “Häufigkeit des Alters“,
        cex.axis=1.5, cex.names=1.5, cex.lab=1.5, 
        cex.main=1.5, axis.lty=1, las=2,
        col=“darkred“, col.axis=“darkblue“, 
        col.main=“darkblue“, col.lab=“darkblue“)

Säulendiagramm in R mit Häufigkeiten

 

Im Beispiel habe ich es stark übertrieben. So eine Darstellung würde ich nicht empfehlen. Es sollte nur dazu dienen, wie man beispielhaft mit dem Einfärben in R arbeitet.
 

6 Videotutorial zum Erstellen eines einfachen Säulendiagramms 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