Comment créer des histogrammes par groupe dans ggplot2 (avec exemple)
Vous pouvez utiliser la syntaxe de base suivante pour créer un histogramme par groupe dans 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'))
Cet exemple particulier crée un tracé avec trois histogrammes superposés rouge, bleu et violet.
L’exemple suivant montre comment utiliser cette syntaxe dans la pratique.
Exemple : créer un histogramme par groupe dans ggplot2
Supposons que nous ayons le bloc de données suivant dans R qui contient des informations sur les points marqués par les basketteurs de trois équipes différentes :
#make this example reproducible
set.seed(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
Nous pouvons utiliser le code suivant pour créer des histogrammes qui affichent la répartition des points marqués par chacune des trois équipes :
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'))
Les trois histogrammes représentent la répartition des points marqués par les joueurs de chaque équipe.
La légende sur le côté droit du tracé montre quelle couleur correspond à chaque équipe.
Notez que l’argument color spécifie la couleur du contour des barres dans chaque histogramme et l’argument alpha spécifie la transparence (entre 0 et 1) à utiliser pour les barres.
En définissant la valeur d’ alpha sur une valeur inférieure à 1, nous pouvons voir les barres qui se chevauchent entre les histogrammes.
N’hésitez pas à utiliser la fonction labs() pour modifier les étiquettes dans le tracé et choisissez un thème ggplot2 qui correspond à votre style :
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()
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