Gráficos de barras en R
Crea gráficos de barras con la función barplot(altura), donde la altura es un vector o matriz. Si la altura es un vector, los valores determinan las alturas de las barras en el gráfico. Si la altura es una matriz y la opción beside=FALSE, cada barra del gráfico corresponde a una columna de altura, y los valores de la columna dan las alturas de las "subbarras" apiladas. Si la altura es una matriz y beside=TRUE, los valores de cada columna se yuxtaponen en lugar de apilarse. Incluye la opción nombres.arg=(vector de caracteres) para etiquetar las barras. La opción horiz=TRUE para crear un gráfico de barras horizontal.
Gráfico de barras simple
# 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"))
Gráfico de barras apiladas
# 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))
Gráfico de barras agrupadas
# 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)
Notas
No es necesario que los gráficos de barras se basen en recuentos o frecuencias. Puedes crear gráficos de barras que representen medias, medianas, desviaciones típicas, etc. Utiliza la función aggregate( )y pasa los resultados a la función barplot( ).
Por defecto, la línea del eje categórico está suprimida. Incluye la opción axis.lty=1 para dibujarlo.
Con muchas barras, las etiquetas de las barras pueden empezar a solaparse. Puedes disminuir el tamaño de la fuente utilizando la opción cex.names =. Los valores menores que uno reducirán el tamaño de la etiqueta. Además, puedes utilizar parámetros gráficos como los siguientes para ayudar al espaciado del texto:
# 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)