Website-Icon Björn Walther

Kreisdiagramm in R erstellen


Mit einem Kreisdiagramm (auch Kuchendiagramm oder Tortendiagramm) kann man für nominal- und z.T. ordinalskalierte Variablen die relativen Häufigkeiten der Ausprägungen zur Gesamtzahl darstellen. Kurz gesagt, z.B. die prozentuale Verteilung von Noten in einem Notenspiegel. Hierzu kann man in R die pie()-Funktion verwenden oder mit ggplot ein noch schickeres Kreisdiagramm erstellen.

Zum Installieren von R bzw. RStudio empfehle ich diesen Artikel. Für augenfreundliches Arbeiten empfehle ich euch diesen Artikel sehr. Schließlich wird die Frage nach dem Import von Daten in R in diesem Artikel beantwortet.

Im Beispiel stelle ich die prozentualen Häufigkeiten der Sportnoten innerhalb einer Stichprobe dar.
 

1 Das Kreisdiagramm erstellen

1.1 Ein 1. Entwurf

Als erstes wird mit dem pie()-Befehl eine vorher zu erstellende Häufigkeitstabelle in einen Kreis gepackt. Die Häufigkeitstabelle wird mit dem Befehl table() erstellt und hat folgendes Ergebnis:


> table(df$Sportnote)

    Sehr gut  Gut Befriedigend  Ausreichend   Mangelhaft   Ungenügend 
           6   14           11           11            2            7

Damit ist zunächst klar, dass nicht Prozentwerte, sondern absolute Häufigkeiten abgetragen werden:


pie(table(df$Sportnote))

Das erste Ergebnis ist erstmal ernüchternd. Es wird nachfolgend noch entsprechend angepasst.

 

1.2 Relative Häufigkeiten berechnen

Relative Häufigkeiten, also Prozentwerte erhält man durch einfaches Teilen der absoluten Häufigkeiten durch die Gesamtzahl – hier Testsubjekte. Ich könnte diese zwar manuell zählen (es sind im Beispiel 51), das ist aber wenig dynamisch. Daher summiere ich die Anzahl aller Sportnoten mit dem sum()-Befehl, den ich in die Häufigkeitstabelle einbaue.

Jeder Eintrag in der Häufigkeitstabelle wird folglich durch die Gesamtzahl geteilt. Zu guter letzt möchte ich dies mit 100 multiplizieren, um einfach zu lesende Prozentwerte zu erhalten.

Im Code sieht das dann wie folgt aus:


(table(df$Sportnote)/sum(table(df$Sportnote)))*100

 

Das Ergebnis ist Folgendes:


 Sehr gut        Gut Befriedigend  Ausreichend   Mangelhaft   Ungenügend 
11.764706  27.450980    21.568627    21.568627     3.921569    13.725490

Diese Werte möchte ich nun aber noch auf zwei Dezimalstellen gerundet speichern, damit ich sie für die spätere Beschriftung des Diagramms wieder verwenden kann. Ich speichere sie in der Variable „prozent“ und runde mit der round()-Funktion auf 2 Nachkommastellen.


prozent 

Die Variable kann man sich ausgeben lassen und erhält Folgendes:


 Sehr gut    Gut Befriedigend  Ausreichend   Mangelhaft   Ungenügend 
    11.76  27.45        21.57        21.57         3.92        13.73

 

1.3 Beschriftung erstellen

Damit man beim Lesen des Kreisdiagramms weiß, welche Sportnote welchen Anteil in der Stichprobe hat, ist es notwendig eine Beschriftung zu erstellen. Hierzu definiert man eine Variable mit den jeweiligen Ausprägungen. Im Beispiel sind es die sechs Schulnoten. Die Beschriftung erfolgt immer aufsteigend, egal ob es numerische Variablen sind oder Wörter (sog. character), weil die Häufigkeitstabelle so aufgebaut ist. Im Zweifel lässt man sich also immer eine Häufigkeitstabelle ausgeben, um die Reihenfolge richtig zu erstellen. Ich verknüpfe nun also lediglich die sechs Noten miteinander in einer neuen Variable.


noten 

 

Im letzten Schritt für die Beschriftung füge ich die Prozentwerte von oben und die Noten zusammen. Dies funktioniert mit dem paste()-Befehl. Ich erstelle eine neue Variable, die sich aus der Zusammensetzung der Variable "noten" (Bezeichnung der Noten), "prozent" (prozentuale Häufigkeiten), dem Prozentzeichen (%) sowie einem Leerzeichen (" ") zusammensetzt.


beschriftung 

 

Lässt man sich nun die Variable "beschriftung" testweise ausgeben, erhält man die jeweilige Note und die relativen Häufigkeiten (in %):


[1] "Sehr gut 11.76 %"     "Gut 27.45 %"          "Befriedigend 21.57 %"
[4] "Ausreichend 21.57 %"  "Mangelhaft 3.92 %"    "Ungenügend 13.73 %" 

 

1.4 Kreisdiagramm und Beschriftung zusammenführen

Hierzu ist es lediglich notwendig, die bisher gemachten Befehle zu kombinieren.

  1. Man beginnt wie gehabt mit dem pie()-Befehl, in dem man die Häufigkeitstabelle der Sportnote mit dem table()-Befehl als Datengrundlage definiert.
  2. Als Nächstes wird mit dem labels-Argument innerhalb von pie() die Beschriftung festgelegt: labels = beschriftung
  3. Mit main="Notenspiegel" vergebe ich einen Diagrammtitel.
  4. Mit col = c() vergebe ich nun noch aussagekräftige Farben. Auch sie sind in Anführungszeichen und mit Komma getrennt anzugeben. Achtung, die Reihenfolge ist analog zur Beschriftung, die sich aus der Häufigkeitstabelle ablesen lässt.

 

Der gesamte Code sieht wie folgt aus:


prozent 

Im Ergebnis erhält man folgendes Kreisdiagramm:

 

1.5 Weitere Formatierungen

Alle der folgenden Befehle sind innerhalb des pie()-Befehls anzuwenden.

 

2 Videotutorial zum Erstellen eines Kreisdiagramms in R

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

Die mobile Version verlassen