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