Website-Icon Björn Walther

Histogramm in R erstellen und formatieren


 

Mit einem Histogramm werden die Häufigkeiten eines Merkmals in einer Grafik, genauer gesagt Säulen abgetragen. Je höher die Säulen, desto mehr Häufigkeiten wurden für die Ausprägung gezählt.

Vorbemerkungen

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 “df” heißt, sowie das Dollarzeichen ($) zur Verknüpfung.
 

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

1 Histogramm in R mit hist()

1.1 Säulen einfügen

Der hist()-Befehl ist der Ausgangspunkt der Grafikerstellung. Die abzutragende Variable ist direkt einzugeben. In meinem Fall die Variable Gewicht aus dem Data Frame “df”.


hist(df$Gewicht)


 

R entscheidet auf Basis der Verteilung, wo auf der x-Achse Anfang und Ende gesetzt werden. Gleichzeitig werden die Abstände von R automatisch gesetzt. Die Abstände meinen die Säulenbreiten, also in welchem Bereich die Häufigkeiten gezählt werden.
 

1.2 Achsen beschriften und Titel vergeben

Da die Beschriftungen an den Achsen noch unangepasst sind, ist hier Abhilfe nötig. Dazu dienen die Befehle “xlab=” und “ylab=“. In Anführungszeichen können beliebige Wörter eingegeben werden. Sinnvollerweise kommt an die y-Achse die Beschriftung “Häufigkeit” und an die x-Achse der Variablenname “Gewicht”.

Zusätzlich kann ich mit “main=” noch einen Titel vergeben. Allerdings ist das nicht zwingend notwendig, da in Texten meist mit Abbildungsbeschriftungen unter- oder oberhalb der Abbildung gearbeitet wird.


hist(df$Gewicht, xlab="Gewicht", ylab="Häufigkeit"
     main="TITEL")

 

1.3 Säulen einfärben

Um die Säulen vom Standardgrau zu befreien und eine andere Farbe festzulegen, kann das Argument “col=” verwendet werden. Zu den zur Verfügung stehenden Farben in R gibt es hier noch mal einen ausführlichen Artikel: Farben in R, der „col“-Befehl.


hist(df$Gewicht, xlab="Gewicht", ylab="Häufigkeit", 
     main="TITEL", col="steelblue")

1.4 Häufigkeiten als Beschriftung einfügen

Um auf einen Blick ablesen zu können, welches Merkmal wie häufig vorkommt, können Häufigkeiten eingefügt werden. Die Häufigkeiten einzufügen hört sich trivialer an, als es das zunächst ist.
Als Erstes muss hierzu das Diagramm in einen Vektor (hier “h”) abgelegt werden, weil darin die Informationen für die Beschriftungsposition sowie die Häufigkeiten hinterlegt werden.


h <- hist(df$Gewicht, xlab="Gewicht", ylab="Häufigkeit", 
          main="TITEL", col="steelblue")

Als Zweites werden mit dem text()-Befehl die Häufigkeiten an entsprechende Positionen gesetzt. Dabei wird Bezug auf den Vektor h und dessen Inhalt genommen.


text(h$mids, h$counts, labels = h$counts, adj=c(0.5, -0.5))

Die beiden Befehle werden nacheinander ausgeführt. text() plottet die Häufigkeiten über das Histogramm. Sollten Änderungen in text() vorgenommen werden, ist das Histogramm vorher erneut zu plotten.

Sollten die Häufigkeiten nach oben abgeschnitten sein, hilft es die Höhe der y-Achse mit dem Befehl ylim zu erhöhen, z.B. wird mit folgendem Befehl die y-Achse bis auf 25 erweitert: hist(df$Gewicht, ylim=c(0,25))

 

2 Achsen, Achsenbeschriftung und Titel formatieren

Der Code sieht wie folgt aus.


h <- hist(df$Gewicht, xlab="Gewicht", ylab="Häufigkeit", 
          main="TITEL", col="steelblue", ylim=c(0,25), 
          cex.axis=1.5, cex.lab=1.5, 
          cex.main=1.5, las=2)

 

3 Anzahl Säulen anpassen

Es kann wünschenswert sein, nicht R die Kontrolle zu überlassen, wenn es um die Festlegung der Anzahl der Säulen bzw. der Säulenbreiten geht. Hierzu dient das breaks-Argument. Mit der Anzahl der Breaks werden die Anzahl der Säulen+1 festgelegt. Bei breaks = 3 werden demnach 4 Säulen erstellt.


h <- hist(df$Gewicht, xlab="Gewicht", ylab="Häufigkeit", 
          main="TITEL", col="steelblue", ylim=c(0,25),
          breaks=3)


 

Alternativ kann man mit breaks=c(50, 70, 90, 110) auch definieren, wo die jeweiligen Säulen beginnen und enden sollen.


h <- hist(df$Gewicht, xlab="Gewicht", ylab="Häufigkeit", 
          main="TITEL", col="steelblue", ylim=c(0,25),
          breaks=c(50, 70, 90, 110))


 

4 Zusatz: Farbe der 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 Diagramme sind am unverfänglichsten. Dennoch, gibt es die Möglichkeit Diagrammbestandteile neben den Säulen einzufärbenZu den Farben in R gibt es hier noch mal einen ausführlichen Artikel: Farben in R, der „col“-Befehl.
col.axis färbt die Werte auf den Achsen ein, col.main färbt den Titel ein sowie col.lab die Achsenbeschriftungen.


h <- hist(df$Gewicht, xlab="Gewicht", ylab="Häufigkeit", 
          main="TITEL", col="steelblue", ylim=c(0,25), 
          cex.axis=1.5, cex.lab=1.5, 
          cex.main=1.5, las=2,
          col.axis="darkblue", 
          col.main="darkblue", col.lab="darkred")

5 Videotutorial zum Erstellen eines einfachen Histogramms in R

https://www.youtube.com/watch?v=xk0_L82TYy0/
 

Die mobile Version verlassen