Website-Icon Björn Walther

Balkendiagramm in R erstellen


Mit einem Balkendiagramm tragt ihr typischerweise die Häufigkeiten eines Merkmals in einer Grafik horizontal ab. Dieser Artikel zeigt ein Tutorial, wie ihr ein Balkendiagramm in R mit Bordmitteln (barplot-Funktion) am schnellsten erstellt.

Zunächst müsst ihr eure Daten in R einlesen. Es besteht die Möglich, dass ihr sie mit dem attach-Befehl aus dem Data-frame herauslöst. In diesem Artikel zeige ich nur die Variante mit Zugriff auf den Data-frame. Deswegen ist den jeweiligen Variablen stets mein Data-frame, der “data_xls” heißt, vorangestellt. Zusätzlich steht ein Dollarzeichen ($) zur Verknüpfung. Ich zeige nachfolgend Schritt für Schritt den Aufbau des Balkendiagramms. Wollt ihr ein Säulendiagramm erstellen, hilft euch dieser Artikel.

Zum Installieren von R bzw. RStudio empfehle ich diesen Artikel. Für augenfreundliches Arbeiten empfehle ich euch diesen Artikel sehr.

 

1 Balkendiagramm in R – Die Balken einfügen

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


barplot(height, ...)

 

Das Argument “height” ist bereits ein Implikator dafür, dass es um eine Höhe geht – die Höhe einer Säule (wie erstelle ich ein Säulendiagramm?). Wir brauchen allerdings Balken, weswegen wir hier direkt einen zusätzlichen Befehl einführen, der die Säulen auf die Seite legt und aus ihnen Balken macht (horiz = TRUE). Im Beispiel möchte ich für das Alter ein Balkendiagramm erstellen. Dabei gibt es zwei grundlegende Herangehensweisen:


barplot(height, horiz = TRUE)

 

1.1 Merkmal definiert die Balkenlänge – für jeden Fall

Der erste Fall ist, dass jeder Fall/jede Person einen Balken bekommt. Deren Länge 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 x-Achse steht hier entsprechend das Alter. Die y-Achse, die hier noch unbeschriftet ist, repräsentiert die Fallnummer von 1 bis zum letzten Fall. Es leuchtet ein, dass man mit so einem Balkendiagramm nicht unbedingt viele Fälle sinnvoll bzw. übersichtlich darstellen kann.


barplot(data_xls$Alter, horiz = TRUE)

 

1.2 Häufigkeiten des Merkmals definiert den Balken

Hierbei werden die Häufigkeiten gezählt und diese abgetragen. Dabei erscheint nun auf der y-Achse das Merkmal, also im Beispiel das Alter, und auf der x-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. Dies führt im Diagramm zu einer 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), horiz = TRUE)

 

2 Balkendiagramm in R – Die Achsenbeschriftung anpassen

Wie man sehen kann, hat man in R ein einfaches Balkendiagramm, wahlweise ohne und mit Häufigkeitszählung erstellt. Allerdings fällt gleich auf, dass die Beschriftung der Achsen noch fehlen und man hier schnell für Abhilfe sorgen sollte. R trägt in euer Balkendiagramm 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 Balkendiagramm 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(table(data_xls$Alter), horiz=TRUE,
xlab = “Fallnummer“, ylab=“Alter in Jahren“)

 

Auf das Diagramm verzichte ich an der Stelle ausnahmsweise mal.

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


barplot(table(data_xls$Alter), horiz=TRUE,
xlab = “Häufigkeit“, ylab = “Alter in Jahren“)

 

3 Einen Titel vergeben

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


barplot(table(data_xls$Alter), horiz=TRUE,
xlab = “Häufigkeit“, ylab = “Alter in Jahren“,
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.

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.

Das Argument “las” ermöglicht euch das Drehen der Werte an 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), horiz=TRUE,
xlab = “Häufigkeit“, ylab=“Alter in Jahren“,
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=1)

 

 

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“)

 

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

https://www.youtube.com/watch?v=SL_26D9bw-s/
 

Die mobile Version verlassen