Histogramm in R erstellen und formatieren

von | Zuletzt bearbeitet am: Dec 10, 2022 | R, R-Diagramme


 

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.
Histogramm R

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)

Histogramm R
 

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

Histogramm R

 

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

Histogramm R

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.

  • h$mids ist die Mitte der jeweiligen Säule
  • h$counts sind die Häufigkeiten der jeweiligen Säule
  • labels = h$counts beschriftet die Säulen mit den jeweiligen Häufigkeiten
  • adj=c() verrückt die Beschriftung etwas. Die erste Ziffer setzt die Beschriftung mittig in x-Richtung, die zweite Ziffer setzt die Beschriftung in y-Richtung leicht nach oben ab.

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.
Histogramm R

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

  • Die Größe der Achsenbeschriftung kann ebenfalls angepasst werden. Es kann durchaus sinnvoll sein, die Achsen bzw. deren Beschriftung etwas zu vergrößern oder zu verkleinern. 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 Merkmalsbeschriftung, also der y-Achse,
  • 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.
  • 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.


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)

Histogramm R

 

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)

Histogramm R
 

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

Histogramm R
 

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

Histogramm R

5 Videotutorial zum Erstellen eines einfachen Histogramms 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