Balkendiagramme in R
Erstelle Balkendiagramme mit der Funktion barplot(height), wobei height ein Vektor oder eine Matrix ist. Wenn height ein Vektor ist, bestimmen die Werte die Höhe der Balken im Diagramm. Wenn height eine Matrix ist und die Option beside=FALSE, dann entspricht jeder Balken des Plots einer Höhenspalte, wobei die Werte in der Spalte die Höhen der gestapelten "Unterbalken" angeben. Wenn height eine Matrix ist und beside=TRUE, dann werden die Werte in jeder Spalte nebeneinander gestellt und nicht gestapelt. Füge die Option names.arg=(Zeichenvektor) hinzu, um die Balken zu beschriften. Die Option horiz=TRUE erstellt ein horizontales Balkendiagramm.
Einfaches Balkendiagramm
# Simple Bar Plot
counts <- table(mtcars$gear)
barplot(counts, main="Car Distribution",
xlab="Number of Gears")
# Simple Horizontal Bar Plot with Added Labels
counts <- table(mtcars$gear)
barplot(counts, main="Car Distribution", horiz=TRUE,
names.arg=c("3 Gears", "4 Gears", "5 Gears"))
Gestapeltes Balkendiagramm
# Stacked Bar Plot with Colors and Legend
counts <- table(mtcars$vs, mtcars$gear)
barplot(counts, main="Car Distribution by Gears and VS",
xlab="Number of Gears", col=c("darkblue","red"),
legend = rownames(counts))
Gruppiertes Balkendiagramm
# Grouped Bar Plot
counts <- table(mtcars$vs, mtcars$gear)
barplot(counts, main="Car Distribution by Gears and VS",
xlab="Number of Gears", col=c("darkblue","red"),
legend = rownames(counts), beside=TRUE)
Anmerkungen
Balkendiagramme müssen nicht auf Zählungen oder Häufigkeiten basieren. Du kannst Balkendiagramme erstellen, die Mittelwerte, Mediane, Standardabweichungen usw. darstellen. Verwende die Funktion aggregate( )und übergebe die Ergebnisse an die Funktion barplot( ).
Standardmäßig ist die kategorische Achsenlinie unterdrückt. Füge die Option axis.lty=1 hinzu, um sie zu zeichnen.
Bei vielen Balken können sich die Balkenbeschriftungen überschneiden. Du kannst die Schriftgröße mit der Option cex.names = verringern. Werte kleiner als eins verkleinern die Größe des Etiketts. Außerdem kannst du grafische Parameter wie die folgenden verwenden, um die Textabstände zu verbessern:
# Fitting Labels
par(las=2) # make label text perpendicular to axis
par(mar=c(5,8,4,2)) # increase y-axis margin.
counts <- table(mtcars$gear)
barplot(counts, main="Car Distribution", horiz=TRUE, names.arg=c("3 Gears", "4 Gears", "5 Gears"), cex.names=0.8)