Gráficos de barras no R
Crie gráficos de barras com a função barplot(height), em que a altura é um vetor ou matriz. Se altura for um vetor, os valores determinarão as alturas das barras no gráfico. Se height for uma matriz e a opção beside=FALSE, cada barra do gráfico corresponderá a uma coluna de altura, com os valores na coluna fornecendo as alturas das "sub-barras" empilhadas. Se height for uma matriz e beside=TRUE, os valores em cada coluna serão justapostos em vez de empilhados. Inclua a opção names.arg=(vetor de caracteres) para rotular as barras. A opção horiz=TRUE para criar um gráfico de barras horizontal.
Gráfico de barras simples
# 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 empilhadas
# 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
Os gráficos de barras não precisam ser baseados em contagens ou frequências. Você pode criar gráficos de barras que representam médias, medianas, desvios padrão, etc. Use a função aggregate( )e passe os resultados para a função barplot( ).
Por padrão, a linha do eixo categórico é suprimida. Inclua a opção axis.lty=1 para desenhá-la.
Com muitas barras, os rótulos das barras podem começar a se sobrepor. Você pode diminuir o tamanho da fonte usando a opção cex.names =. Valores menores que um reduzirão o tamanho do rótulo. Além disso, você pode usar parâmetros gráficos, como os seguintes, para ajudar no espaçamento do 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)