Comment ombrer une zone dans ggplot2 (avec exemples)
Vous pouvez utiliser la syntaxe de base suivante pour ombrer une zone particulière dans un tracé dans ggplot2 :
ggplot(df, aes(x=x, y=y)) + geom_point() + annotate('rect', xmin=3, xmax=5, ymin=3, ymax=7, alpha=.2, fill='red')
Cet exemple particulier ombre la zone située entre les valeurs x de 3 et 5 et les valeurs y de 3 et 7.
L’argument fill contrôle la couleur de la zone ombrée et l’argument alpha contrôle la transparence de la couleur.
L’exemple suivant montre comment utiliser cette syntaxe dans la pratique.
Exemple : ombrer une zone dans ggplot2
Supposons que nous ayons la trame de données suivante dans R qui contient des informations sur les points marqués et les rebonds collectés par divers joueurs de basket-ball :
#create data frame
df <- data.frame(points=c(3, 3, 5, 6, 7, 8, 9, 9, 8, 5),
rebounds=c(2, 6, 5, 5, 8, 5, 9, 9, 8, 6))
#view data frame
df
points rebounds
1 3 2
2 3 6
3 5 5
4 6 5
5 7 8
6 8 5
7 9 9
8 9 9
9 8 8
10 5 6
Nous pouvons utiliser le code suivant pour créer un nuage de points et ombrer la zone entre les valeurs x de 3 et 5 et les valeurs y de 3 et 7 avec un rectangle rouge clair :
library(ggplot2) #create scatter plot with shaded area ggplot(df, aes(x=x, y=y)) + geom_point() + annotate('rect', xmin=3, xmax=5, ymin=3, ymax=7, alpha=.2, fill='red')
La zone que nous avons spécifiée dans la fonction annotate() est ombrée avec un rectangle rouge clair.
Notez que la valeur de l’argument alpha est comprise entre 0 et 1, les valeurs inférieures indiquant une plus grande transparence.
Par exemple, si nous modifions la valeur d’ alpha à 0,5, la couleur de la zone ombrée sera plus foncée :
library(ggplot2) #create scatter plot with shaded area ggplot(df, aes(x=x, y=y)) + geom_point() + annotate('rect', xmin=3, xmax=5, ymin=3, ymax=7, alpha=.5, fill='red')
Notez également que vous pouvez utiliser la fonction annotate() plusieurs fois pour créer plusieurs zones ombrées dans votre tracé :
library(ggplot2) #create scatter plot with two shaded areas ggplot(df, aes(x=x, y=y)) + geom_point() + annotate('rect', xmin=3, xmax=5, ymin=3, ymax=7, alpha=.5, fill='red')
N’hésitez pas à jouer avec les arguments de la fonction annotate() pour créer l’ombrage exact que vous souhaitez dans votre tracé.
Ressources additionnelles
Les didacticiels suivants expliquent comment effectuer d’autres tâches courantes dans R :
Comment ajouter du texte aux tracés ggplot2
Comment supprimer le quadrillage dans ggplot2
Comment modifier les étiquettes de l’axe X dans ggplot2