Como traçar linha média por grupo no ggplot2


Você pode usar a seguinte sintaxe básica para traçar uma linha média por grupo no ggplot2:

 #calculate mean points value by team
mean_team <- df %>% group_by(team) %>% summarise(mean_pts=mean(points))
 
#create scatterplot of assists vs points with mean line of points by team
ggplot(df, aes(x=assists, y=points)) +
  geom_point(aes(color=team)) +
  geom_hline(data=mean_team, aes(yintercept=mean_pts, col=team))

Este exemplo específico cria um gráfico de dispersão das assistências vs. assistências variáveis. points e adiciona uma linha para representar o valor médio dos pontos agrupados pela variável team .

O exemplo a seguir mostra como usar essa sintaxe na prática.

Exemplo: traçando a linha média por grupo em ggplot2

Suponha que temos o seguinte quadro de dados em R que contém informações sobre os pontos e assistências de jogadores de basquete de três times diferentes:

 #create data frame
df <- data. frame (team=rep(c(' A ', ' B ', ' C '), each= 5 ),
                 assists=c(2, 4, 4, 5, 6, 6, 7, 7,
                           8, 9, 7, 8, 13, 14, 12),
                 dots=c(8, 8, 9, 9, 10, 9, 12, 13,
                          14, 15, 14, 14, 16, 19, 22))

#view data frame
df

   team assists points
1 to 2 8
2 to 4 8
3 to 4 9
4 to 5 9
5 to 6 10
6 B 6 9
7 B 7 12
8 B 7 13
9 B 8 14
10 B 9 15
11 C 7 14
12 C 8 14
13 C 13 16
14 C 14 19
15 C 12 22

Podemos usar o código a seguir para criar um gráfico de dispersão das assistências vs. variáveis. points e adicione uma linha para representar o valor médio dos pontos agrupados pela variável team .

 library (dplyr)
library (ggplot2)

#calculate mean points value by team
mean_team <- df %>% group_by(team) %>% summarise(mean_pts=mean(points))
 
#create scatterplot of assists vs points with mean line of points by team
ggplot(df, aes(x=assists, y=points)) +
  geom_point(aes(color=team)) +
  geom_hline(data=mean_team, aes(yintercept=mean_pts, col=team)) 

linha média do ggplot por grupo

As três linhas são codificadas por cores para exibir o valor médio de pontos de cada equipe.

Podemos visualizar o quadro de dados Mean_Team que criamos para ver os valores médios reais de pontos para cada equipe:

 #view mean points value by team
mean_team

`summarise()` ungrouping output (override with `.groups` argument)
# A tibble: 3 x 2
  team mean_pts
      
1 to 8.8
2 B 12.6
3 C 17

Pelo resultado podemos ver:

  • O valor médio de pontos dos jogadores do time A é 8,8.
  • O valor médio de pontos dos jogadores do time B é de 12,6.
  • A média de pontos dos jogadores da equipe C é 17.

Esses valores correspondem às localizações das linhas no eixo y do gráfico de dispersão que criamos.

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 *