A gráfico de barras empilhadas é um tipo de gráfico que apresenta quantidades para diferentes variáveis, empilhados por outra variável.

Este tutorial explica como criar gráficos de barras empilhadas em R usando a biblioteca de visualização de dados ggplot2.

Gráfico de barras empilhadas no ggplot2

Suponha que temos a seguinte estrutura de dados que apresenta a média de pontos marcados por jogo de nove jogadores de basquetebol:

 #criar quadro de dados df <- data.frame(team= rep (c(' A ', ' B ', ' C '), each =3), position= rep (c(' Guard ', ' Forward ', ' Center '), times =3), points=c(14, 8, 8, 16, 3, 7, 17, 22, 26)) #ver quadro de dados df team position points 1 A Guard 14 2 A Forward 8 3 A Center 8 4 B Guard 16 5 B Forward 3 6 B Center 7 7 C Guard 17 8 C Forward 22 9 C Center 26 

Podemos utilizar o seguinte código para criar um gráfico de barras empilhadas que apresenta os pontos marcados por cada jogador, empilhados por equipa e posição:

 library (ggplot2) ggplot(df, aes (fill=position, y=points, x=team)) + geom_bar(position=' stack ', stat="identity") 

Personalização de um gráfico de barras empilhadas

Também podemos personalizar o título, os rótulos dos eixos, o tema e as cores do gráfico de barras empilhadas para que ele tenha a aparência que quisermos:

 library (ggplot2) ggplot(df, aes (fill=position, y=points, x=team)) + geom_bar(position=' stack ', stat="identity") + theme_minimal() + labs(x=' Team ', y="Points",) + theme(plot.title = element_text (hjust=0.5, size=20, face="bold")) + scale_fill_manual(' Position ', values=c(' coral2 ', ' steelblue ', ' pink ')) 

Também podemos personalizar ainda mais o aspeto, utilizando um dos temas predefinidos no ggthemes Por exemplo, podemos utilizar o tema do Wall Street Journal desta biblioteca:

 install.packages ('ggthemes') library (ggplot2) library (ggthemes) ggplot(df, aes (fill=position, y=points, x=team)) + geom_bar(position=' stack ', stat="identity") + theme_wsj() 

Consulte o nosso Guia completo para os melhores temas do ggplot2 para obter ainda mais temas.