Comment tracer la ligne moyenne par groupe dans ggplot2
Vous pouvez utiliser la syntaxe de base suivante pour tracer une ligne moyenne par groupe dans 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))
Cet exemple particulier crée un nuage de points des variables assists vs. points , puis ajoute une ligne pour représenter la valeur moyenne des points regroupés par la variable d’équipe .
L’exemple suivant montre comment utiliser cette syntaxe dans la pratique.
Exemple : tracer la ligne moyenne par groupe dans ggplot2
Supposons que nous ayons le bloc de données suivant dans R qui contient des informations sur les points et les passes décisives des basketteurs de trois équipes différentes :
#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),
points=c(8, 8, 9, 9, 10, 9, 12, 13,
14, 15, 14, 14, 16, 19, 22))
#view data frame
df
team assists points
1 A 2 8
2 A 4 8
3 A 4 9
4 A 5 9
5 A 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
Nous pouvons utiliser le code suivant pour créer un nuage de points des variables assists vs. points , puis ajouter une ligne pour représenter la valeur moyenne des points regroupés par la variable d’équipe .
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))
Les trois lignes sont codées par couleur pour afficher la valeur moyenne des points de chaque équipe.
Nous pouvons afficher le bloc de données Mean_Team que nous avons créé pour voir les valeurs moyennes réelles des points pour chaque équipe :
#view mean points value by team
mean_team
`summarise()` ungrouping output (override with `.groups` argument)
# A tibble: 3 x 2
team mean_pts
1 A 8.8
2 B 12.6
3 C 17
À partir du résultat, nous pouvons voir :
- La valeur moyenne des points des joueurs de l’équipe A est de 8,8.
- La valeur moyenne des points des joueurs de l’équipe B est de 12,6.
- La valeur moyenne des points des joueurs de l’équipe C est de 17.
Ces valeurs correspondent aux emplacements des lignes sur l’axe y du nuage de points que nous avons créé.
Ressources additionnelles
Les didacticiels suivants expliquent comment effectuer d’autres tâches courantes dans R :
Comment créer un histogramme de fréquence relative dans R
Comment tracer plusieurs boîtes à moustaches dans un seul graphique dans R
Comment tracer plusieurs lignes dans un graphique dans R