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() 

Histograma ggplot2 por grupo

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

Add a Comment

O seu endereço de email não será publicado. Campos obrigatórios marcados com *