Como criar histogramas por grupo em ggplot2 (com exemplo)
Você pode usar a seguinte sintaxe básica para criar um histograma de grupo no ggplot2:
ggplot(df, aes(x=values_var, fill=group_var)) + geom_histogram(color=' black ', alpha= 0.4 , position=' identity ') + scale_fill_manual(values=c(' red ', ' blue ', ' purple '))
Este exemplo específico cria um gráfico com três histogramas sobrepostos de vermelho, azul e roxo.
O exemplo a seguir mostra como usar essa sintaxe na prática.
Exemplo: crie um histograma por grupo em ggplot2
Suponha que temos o seguinte quadro de dados em R que contém informações sobre os pontos marcados por jogadores de basquete de três times diferentes:
#make this example reproducible
set. seeds (1)
#create data frame
df <- data. frame (team=rep(c(' A ', ' B ', ' C '), each=100),
points=c(rnorm(100, mean=10),
rnorm(100, mean=15),
rnorm(100, mean=20)))
#view head of data frame
head(df)
team points
1 A 9.373546
2 A 10.183643
3 A 9.164371
4 A 11.595281
5 A 10.329508
6 A 9.179532
Podemos usar o código a seguir para criar histogramas que mostram a distribuição dos pontos marcados por cada uma das três equipes:
library (ggplot2)
#create histogram by team
ggplot(df, aes(x=points, fill=team)) +
geom_histogram(color=' black ', alpha= 0.4 , position=' identity ') +
scale_fill_manual(values=c(' red ', ' blue ', ' purple '))
Os três histogramas representam a distribuição dos pontos marcados pelos jogadores de cada equipe.
A legenda do lado direito do gráfico mostra qual cor corresponde a cada equipe.
Observe que o argumento color especifica a cor do contorno das barras em cada histograma e o argumento alfa especifica a transparência (entre 0 e 1) a ser usada para as barras.
Ao definir o valor alfa para menos de 1, podemos ver as barras sobrepostas entre os histogramas.
Sinta-se à vontade para usar a função labs() para modificar os rótulos no gráfico e escolher um tema ggplot2 que se adapte ao seu estilo:
library (ggplot2)
#create histogram by team
ggplot(df, aes(x=points, fill=team)) +
geom_histogram(color=' black ', alpha= 0.4 , position=' identity ') +
scale_fill_manual(values=c(' red ', ' blue ', ' purple ')) +
labs(fill=' Team ', x=' Points Scored ', y=' Count ', title=' Points Scored by Team ') +
theme_classic()
Recursos adicionais
Os tutoriais a seguir explicam como realizar outras tarefas comuns em R:
Como criar um histograma de frequência relativa em R
Como plotar vários boxplots em um único gráfico em R
Como traçar múltiplas linhas em um gráfico em R