Comment ajouter une ligne horizontale au tracé et à la légende dans ggplot2
Vous pouvez utiliser la syntaxe suivante pour ajouter une ligne horizontale à un tracé dans ggplot2, puis ajouter également la ligne horizontale en tant qu’élément dans la légende :
library(ggplot2) #create data frame with values to plot df <- data.frame(team=rep(c('A', 'B'), each=5), assists=c(1, 3, 3, 4, 5, 7, 7, 9, 9, 10), points=c(4, 8, 12, 10, 18, 25, 20, 28, 33, 35)) #create data frame that contains horizontal line location cutoff <- data.frame(yintercept=22, Lines='Cutoff') #create scatterplot with horizontal line and include horizontal line in legend ggplot(df, aes(x=assists, y=points)) + geom_point(aes(color=team)) + geom_hline(aes(yintercept=yintercept, linetype=Lines), cutoff)
En créant un bloc de données distinct contenant uniquement la valeur de l’ordonnée à l’origine de la ligne horizontale, nous pouvons ajouter la ligne horizontale au tracé et l’ajouter automatiquement à la légende.
L’exemple suivant montre comment utiliser cette syntaxe dans la pratique.
Exemple : ajouter une ligne horizontale au tracé et à la légende dans ggplot2
Supposons que nous ayons le bloc de données suivant dans R qui contient des informations sur les joueurs de basket-ball de différentes équipes :
#create data frame df <- data.frame(team=rep(c('A', 'B'), each=5), assists=c(1, 3, 3, 4, 5, 7, 7, 9, 9, 10), points=c(4, 8, 12, 10, 18, 25, 20, 28, 33, 35)) #view data frame df team assists points 1 A 1 4 2 A 3 8 3 A 3 12 4 A 4 10 5 A 5 18 6 B 7 25 7 B 7 20 8 B 9 28 9 B 9 33 10 B 10 35
Supposons que nous souhaitions créer un nuage de points dans ggplot2 pour visualiser les valeurs de points et d’aides pour chaque joueur en fonction de son équipe, puis ajouter une ligne horizontale à y = 22 pour définir un « seuil » pour la différence entre les bons et les mauvais joueurs.
Nous pouvons utiliser la syntaxe suivante pour ce faire :
library(ggplot2) #create data frame that contains horizontal line location cutoff <- data.frame(yintercept=22, Lines='Cutoff') #create scatterplot with horizontal line and include horizontal line in legend ggplot(df, aes(x=assists, y=points)) + geom_point(aes(color=team)) + geom_hline(aes(yintercept=yintercept, linetype=Lines), cutoff)
Notez que la légende à droite du tracé contient des cercles qui indiquent quels points du tracé appartiennent à quelles équipes et une ligne horizontale a également été ajoutée à la légende pour représenter la ligne de coupure.
Si vous souhaitez modifier la légende de la ligne horizontale dans la légende, modifiez simplement le texte de la colonne Lignes dans le bloc de données de coupure .
Par exemple, nous pouvons utiliser la syntaxe suivante pour modifier l’étiquette de la ligne horizontale en « Seuil du bien par rapport au mal » :
library(ggplot2) #create data frame that contains horizontal line location cutoff <- data.frame(yintercept=22, Lines='Cutoff of Good vs. Bad') #create scatterplot with horizontal line and include horizontal line in legend ggplot(df, aes(x=assists, y=points)) + geom_point(aes(color=team)) + geom_hline(aes(yintercept=yintercept, linetype=Lines), cutoff)
Notez que l’étiquette de la ligne horizontale dans la légende a changé.
Ressources additionnelles
Les didacticiels suivants expliquent comment effectuer d’autres tâches courantes dans ggplot2 :
Comment changer le titre de la légende dans ggplot2
Comment changer la taille de la légende dans ggplot2
Comment changer la position de la légende dans ggplot2