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

zone d'ombre ggplot2

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

plusieurs zones ombrées dans ggplot2

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

Ajouter un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *