Comment tracer plusieurs lignes dans ggplot2 (avec exemple)
Vous pouvez utiliser la syntaxe de base suivante pour tracer plusieurs lignes dans ggplot2 :
ggplot(df, aes(x=x_var, y=y_var)) +
geom_line(aes(color=group_var)) +
scale_color_manual(name='legend_title', labels=c('lab1', 'lab2', 'lab3'),
values=c('color1', 'color2', 'color3'))
Cette syntaxe particulière crée un tracé dans ggplot2 avec trois lignes.
Cette syntaxe suppose que votre bloc de données est dans un format long .
L’exemple suivant montre comment tracer plusieurs lignes dans ggplot2 en pratique.
Exemple : tracer plusieurs lignes dans ggplot2
Supposons que nous disposions du bloc de données suivant dans R qui contient des informations sur le nombre de ventes réalisées dans trois magasins différents sur cinq jours différents :
#create data frame
df <- data.frame(day=c(1, 2, 3, 4, 5),
storeA=c(5, 6, 8, 8, 9),
storeB=c(3, 3, 4, 5, 7),
storeC=c(8, 10, 12, 12, 17))
#view data frame
df
day storeA storeB storeC
1 1 5 3 8
2 2 6 3 10
3 3 8 4 12
4 4 8 5 12
5 5 9 7 17
Cette trame de données est actuellement dans un format large.
Cependant, nous pouvons utiliser la fonction pivot_longer() du package Tidyr pour convertir rapidement les données dans un format long :
library(tidyr)
#convert data from wide to long format
df <- df %>% pivot_longer(cols=c('storeA', 'storeB', 'storeC'),
names_to='store',
values_to='sales')
#view updated data frame
df
# A tibble: 15 x 3
day store sales
1 1 storeA 5
2 1 storeB 3
3 1 storeC 8
4 2 storeA 6
5 2 storeB 3
6 2 storeC 10
7 3 storeA 8
8 3 storeB 4
9 3 storeC 12
10 4 storeA 8
11 4 storeB 5
12 4 storeC 12
13 5 storeA 9
14 5 storeB 7
15 5 storeC 17
Connexe : Une introduction à pivot_longer() dans R
Maintenant que le bloc de données est au format long, nous pouvons utiliser la syntaxe suivante avec ggplot2 pour tracer les ventes de chaque magasin :
library(ggplot2)
#plot sales by store
ggplot(df, aes(x=day, y=sales)) +
geom_line(aes(color=store)) +
scale_color_manual(name='Store', labels=c('A', 'B', 'C'),
values=c('red', 'purple', 'steelblue'))
Les lignes individuelles affichent les ventes réalisées dans chaque magasin chaque jour.
Notez que nous avons utilisé la fonction scale_color_manual() pour créer une légende personnalisée sur le côté droit du tracé afin de faciliter l’interprétation des lignes.
N’hésitez pas à modifier les arguments de cette fonction pour créer une légende qui apparaît exactement comme vous le souhaitez.
Ressources additionnelles
Les didacticiels suivants expliquent comment effectuer d’autres tâches courantes dans ggplot2 :
Comment tracer la moyenne et l’écart type dans ggplot2
Comment ajouter une ligne horizontale à un tracé à l’aide de ggplot2
Comment dessiner une ligne de tendance dans ggplot2