GNU R: barplot

Aus Wikibooks

Säulen- und Balkendiagramme werden sehr häufig eingesetzt, daher soll dieser Diagrammtyp ausführlicher dargestellt werden. Neben einfachen Säulen-/Balkendiagrammen gibt es auch gestapelte und gruppierte Säulen-/Balkendiagramme.

Bei der Verwendung von barplot ist darauf zu achten, dass barplot nur auf Vektoren und Matrizen, nicht jedoch Datenframes anwendbar ist. Mit class(height) kann überprüft werden, ob es sich bei einem vorhandenen Datenobjekt tatsächlich um einen numerischen Vektor oder eine numerische Matrix handelt. Falls Daten als Datenframe vorliegen, müssen sie zuerst in eine Matrix umgewandelt werden. barplot gibt einen numerischen Vektor mit den x-Koordinaten der Balkenmitten zurück. Dieser Vektor ist sehr nützlich, um z.B. Säulen-/Balkendiagramme mit Fehlerbalken zu erweitern.


Syntax[Bearbeiten]

barplot(height, ...)
barplot(height, width = 1, space = NULL,
        names.arg = NULL, legend.text = NULL, beside = FALSE,
        horiz = FALSE, density = NULL, angle = 45,
       col = NULL, border = par("fg"),
        main = NULL, sub = NULL, xlab = NULL, ylab = NULL,
        xlim = NULL, ylim = NULL, xpd = TRUE, log = "",
        axes = TRUE, axisnames = TRUE,
        cex.axis = par("cex.axis"), cex.names = par("cex.axis"),
        inside = TRUE, plot = TRUE, axis.lty = 0, offset = 0,
        add = FALSE, ...)

Handhabung[Bearbeiten]

Für die folgenden Beispiele verwenden wir VADeaths, eine Datenmatrix, die im Basispaket mitgeliefert wird. Die Beispiele in R für barplot basieren größtenteils auch auf diesem Datensatz. Es handelt sich dabei um Sterberaten pro 1000 Einwohner, getrennt nach Geschlecht und Altersklassen, sowie städtischen und ländlichen Regionen in Virginia um 1940. Weitere Details zu den Daten erfahren Sie, wenn Sie help(VADeaths) eingeben. Wenn Sie einfach nur VADeaths eingeben, wird die Matrix auf dem Bildschirm ausgegeben. Dabei wird ersichtlich, dass Zeilen und Spalten mit Bezeichnungen (Labels) versehen sind, die bei der Erstellung von Säulendiagrammen, z.B. zur Beschriftung von Säulen, sehr nützlich sind.

einfaches Säulendiagramm[Bearbeiten]

einfaches Säulendiagramm einer Variablen

Im einfachsten Fall wird die Grafikfunktion barplot mit einem Vektor aufgerufen, der die Höhe der einzelnen Balken (height) enthält.

Zeilennamen[Bearbeiten]

Sofern Zeilennamen (rownames) vorhanden sind, werden diese als Beschriftung für die Säulen verwendet. Wenn diese nicht vorhanden sind, kann man diese als Argument an barplot übergeben.

  # Notenverteilung bei einer Klausur im Vektor 'noten'
  noten <- c(3,5,12,4,2,1)
  # in Verbindung mit der Notenbezeichnung ergibt sich 3x"sehr gut"
  notebezeichnung <- c("sehr gut","gut","befriedigend","ausreichend","mangelhaft","ungenügend")
  # Bar-Plot generieren
  barplot(noten, names.arg=notenbezeichnung)
# nur die erste Spalte der Matrix wird verwendet.
barplot(VADeaths[,1],                                                     

# Überschrift
  main = "Death Rates in Virginia (1940) per 1000 (Rural Male)")

gestapeltes Säulendiagramm[Bearbeiten]

Beim Aufruf von barplot mit einer Matrix, die mehrere Spalten enthält, wird ohne weitere Angaben ein gestapeltes Balkendiagramm ausgegeben, wobei jede Spalte der Matrix einen gestapelten Balken definiert.

barplot(VADeaths)

gruppiertes Säulendiagramm[Bearbeiten]

Durch die zusätzliche Angabe von beside = TRUE beim Aufruf von barplot mit einer Matrix, die mehrere Spalten enthält, wird statt eines gestapelten Säulendiagramms ein gruppiertes Säulendiagramm ausgegeben. Die Anzahl der Spalten in der Matrix bestimmt, wie viele Säulen sich in einer Gruppe befinden.

barplot(VADeaths, beside = TRUE)

Balkendiagramm[Bearbeiten]

Mit dem zusätzlichen Parameter (horiz = TRUE) versehen, können alle oben aufgeführten Diagrammtypen horizontal ausgerichtet werden und mutieren dadurch zu Balkendiagrammen.

barplot(VADeaths, horiz = TRUE)

Parameter[Bearbeiten]

Das Erscheinungsbild von Säulen/Balkendiagrammen lässt sich in R über zahlreiche Parameter an die eigenen Bedürfnisse anpassen.


Parameter Beschreibung Beispiel
height Vektor oder Matrix mit den Daten, für die ein Säulen/Balkendiagramm erstellt werden soll. VADeaths
width An width kann ein Vektor übergeben werden, mit dem die Breite der einzelnen Säulen individuell festgelegt wird. width <- c(1,2,3,4,5)
space space legt die Größe des (linken) Zwischenraumes (als Anteil an der durchschnittlichen Säulenbreite) zwischen Säulen fest. Kann ein Wert sein oder ein Vektor, wenn unterschiedliche Abstände zwischen Säulen gewünscht werden. Falls heigth eine Matrix ist und beside auf TRUE gesetzt ist, können auch zwei Werte angegeben werden. Der erste bestimmt dann den Abstand zwischen Säulen einer Gruppe und der zweite Wert den Abstand zwischen den Gruppen.
names.arg Vektor mit den Bezeichnungen der Säulen. Sofern nicht angegeben, werden die Säulenbezeichnungen vom Namensattribut des Vektors heigth übernommen und falls es sich bei height um eine Matrix handelt, die Zeilenbezeichungen verwendet. Die Anzahl der Namen muss mit der Anzahl der Säulen übereinstimmen.
legend.text Dieser Parameter ist nur dann sinnvoll, wenn es sich bei height um eine Matrix handelt. Es wird entweder TRUE oder FALSE übergeben oder ein Vektor mit Namen für die Konstruktion der Legende. Wenn TRUE übergeben wird, dienen die Spaltennamen von height als Legendentext.
beside Die Parametereinstellung beside legt fest, ob ein Säulendiagramm, sofern mehrere Matrixspalten vorhanden sind, gruppiert oder gestapelt wird. Standardmäßig ist beside = FALSE gesetzt und wird ein gestapeltes Säulendiagramm ausgegeben. beside = TRUE
horiz Mit dem Wert TRUE werden die Säulen horizontal ausgerichtet, also Balkendiagramme ausgegeben. horiz = TRUE
density An density kann ein Vektor übergeben werden, der die Dichte der Schraffur in Linien pro Inch für Balken oder Balkenteile enthält. Mit dem Standardwert NULL oder einem negativen Wert wird die Ausgabe der Schraffur unterdrückt. density = 4
angle Mit angle, ebenfalls ein Vektor, wird die Steigung der Schraffur für Balken und Balkenteile festgelegt. angle = 30
col Mit col kann die Farbe der Schraffur bzw. der Säule selbst bestimmt werden. Standardeinstellung ist NULL. Damit wird der Säulenhintergrund auf die Hintergrundfarbe des Diagramms versehen. col="blue"
border Ein optionaler Vektor von Farben für die Umrisse der Säulen. Wenn weniger Farben angegeben sind als Säulen gezeichnet werden, wiederholen sich die Farben. Standardmäßig erscheinen die Rahmen der Säulen in der Vordergrundfarbe. border = (farbe <- c("black", "green"))
main Überschrift main="Überschrift"
sub Untertitel am unteren Grafikrand sub="Abbildung 1"
xlab Beschriftung der X-Achse xlab="X-Achse"
ylab Beschriftung der Y-Achse ylab="Y-Achse"
xlim Mit xlim werden die Grenzen der x-Achse festgelegt. Falls x1 größer als x2 ist, wird die Achse umgekehrt ausgegeben. xlim = c(-3,5)
ylim Mit ylim werden die Grenzen der y-Achse festgelegt. ylim = c(-3,5)
xpd logisch. Sollen die Säulen über den in den Achsen definierten Bereich hinausgehen? Standardeinstellung ist TRUE. Mit False kann erreicht werden, dass z.B. der untere Bereich der Säulen abgeschnitten wird. Unterschiede zwischen den Säulen werden dadurch hervorgehoben. Allerdings ist das kein guter Stil. xpd = FALSE
log Ein Text, der festlegt, welche Achse logarithmisch skaliert werden soll. Mit x wird die x-Achse logarithmisch skaliert, mit y die y-Achse und mit xy beide Achsen log = "y"
axes Wenn der Wert von axes TRUE ist, wird die vertikale Achse ausgegeben. axes = TRUE
axisnames Wenn names.arg vorhanden ist und axisnames auf TRUE gesetzt wird, wird die horizontale Achse ausgegeben. axisnames = TRUE
cex.axis Bestimmt die Schriftgröße der numerischen Skala cex.axis = 1.5
cex.names Bestimmt die Schriftgröße der Säulenbezeichnungen cex.names = 1.5
inside Wird der logische Wert auf TRUE gesetzt, dann werden die Linien, die angrenzende Säulen trennen, gezeichnet. Dieser Parameter ist nur anwendbar, wenn space = 0 gesetzt ist. inside = TRUE
plot Mit der Standardeinstellung TRUE wird die Grafik ausgegeben. Mit der Einstellung FALSE werden nur die x-Koordinaten der Säulenmitten bestimmt. plot=TRUE
axis.lty Mit axis.lty kann auch die horizontale Achse, die standardmäßig unterdrückt wird, ausgegeben werden. lty steht dabei für den dazu verwendeten Linientyp. axis.lty = 1
offset An offset wird ein Vektor übergeben, der bestimmt, wie viel die Balken relativ zur x-Achse verschoben werden sollen.
add Logischer Wert. Falls er auf TRUE gesetzt wird, wird der barplot zu einer schon vorhandenen Grafik hinzugefügt. add = TRUE
... Die drei Punkte stehen für Parameter, die an andere Methoden weitergegeben werden oder die barplot von anderen Methoden erhält. Siehe par für weitere grafische Parameter, die zur Gestaltung von barplot eingesetzt werden können.

siehe auch[Bearbeiten]

  • Diagramme
  • hist - Erzeugt Histogramme
  • par - Funktion zum Setzen grafischer Parameter

Weblinks[Bearbeiten]