GNU R: barplot
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]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]Weblinks
[Bearbeiten]- Wikipedia-Artikel: Wasserfalldiagramm
- Wikipedia-Artikel: Paretodiagramm
- Wikipedia-Artikel: Histogramm