Comment dessiner des flèches dans ggplot2 (avec exemples)



Vous pouvez utiliser la syntaxe de base suivante pour dessiner une flèche dans un tracé dans ggplot2 :

library(ggplot2)

ggplot(df, aes(x=x, y=y)) +
  geom_point() +
  geom_segment(aes(x=5, y=6, xend=8, yend=9), arrow = arrow(length=unit(0.5, 'cm')))

Voici ce que fait chaque argument dans la fonction geom_segment() :

  • x : La valeur x à laquelle commencer
  • y : La valeur y à laquelle commencer
  • xend : La valeur x à laquelle se terminer
  • yend : La valeur y à laquelle se terminer
  • arrow : La longueur de la pointe de la flèche

L’exemple suivant montre comment dessiner une flèche en utilisant ggplot2 dans la pratique.

Exemple : dessiner des flèches dans ggplot2

Supposons que nous disposions de la base de données suivante contenant des informations sur le nombre de points marqués et de 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 la syntaxe suivante pour créer un nuage de points dans ggplot2 et ajouter une flèche à un emplacement spécifique sur le tracé :

library(ggplot2)

#create scatterplot and add arrow
ggplot(df, aes(x=points, y=rebounds)) +
  geom_point() +
  geom_segment(aes(x=5, y=6, xend=8, yend=9), arrow = arrow(length=unit(.5, 'cm')))

dessiner une flèche dans ggplot2

N’hésitez pas à modifier la valeur dans la fonction arrow() pour augmenter ou diminuer la taille de la pointe de la flèche.

Par exemple, le code suivant montre comment augmenter la taille :

library(ggplot2)

#create scatterplot and add arrow with increased arrow head size
ggplot(df, aes(x=points, y=rebounds)) +
  geom_point() +
  geom_segment(aes(x=5, y=6, xend=8, yend=9), arrow = arrow(length=unit(2, 'cm')))

Vous pouvez également utiliser les arguments color et lwd pour modifier respectivement la couleur et la largeur de ligne de la flèche :

library(ggplot2)

#create scatterplot and add customized arrow
ggplot(df, aes(x=points, y=rebounds)) +
  geom_point() +
  geom_segment(aes(x=5, y=6, xend=8, yend=9), arrow = arrow(length=unit(.5, 'cm')),
               color='red', lwd=3)

N’hésitez pas à jouer avec les différents arguments de la fonction geom_segment() pour créer une flèche qui ressemble exactement à ce que vous souhaitez.

Ressources additionnelles

Les didacticiels suivants expliquent comment effectuer d’autres tâches courantes dans ggplot2 :

Comment supprimer le quadrillage dans ggplot2
Comment ombrer une zone 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 *