Balkendiagramm in R erstellen

von | Jan 15, 2020 | R, R-Diagramme


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, das 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.

 

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)

 

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

Der erste Fall ist, das 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)

Balkendiagramm R

 

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 drei mal vor, 28 fünf mal 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)

Balkendiagramm R

 

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

Balkendiagramm in R

 

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

Balkendiagramm in R

 

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 Merkmalsausprägungen, 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 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)

Balkendiagramm in R

 

 

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

Balkendiagramm in R

 

Im Beispiel haben 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.

 

Videotutorial zum Erstellen eines einfachen Säulendiagramms in R

Dieses Video ansehen auf YouTube.

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.

Vielen Dank und viel Erfolg!

Über mich

Björn Walther

Excel- und SPSS-Experte

YouTube-Kanal

Excel Online-Kurs

YouTube-Kanal