Ce tutoriel décrit comment créer un ggplot avec plusieurs lignes.
Sommaire:
Livre Apparenté
GGPLOT2 - L’Essentiel pour une Visualisation Magnifique des Données dans RCharger le package ggplot2
Charger ggplot2 et définir le thème par défaut:
library(ggplot2)
theme_set(theme_minimal())
Data
Les jeux de données economics
des séries chronologiques de l’économie américaine sont utilisés. Il s’agit d’une data frame de 478 lignes et 6 variables.
head(economics)
## # A tibble: 6 x 6
## date pce pop psavert uempmed unemploy
## <date> <dbl> <dbl> <dbl> <dbl> <dbl>
## 1 1967-07-01 507. 198712 12.6 4.5 2944
## 2 1967-08-01 510. 198911 12.6 4.7 2945
## 3 1967-09-01 516. 199113 11.9 4.6 2958
## 4 1967-10-01 512. 199311 12.9 4.9 3143
## 5 1967-11-01 517. 199498 12.8 4.7 3066
## 6 1967-12-01 525. 199657 11.8 4.8 3018
- date : Mois de la collecte des données
- psavert : taux d’épargne des particuliers
- pce : personal consumption expenditures (dépenses de consommation des particuliers), en milliards de dollars
- unemploy: nombre de chômeurs en milliers
- uempmed : durée médiane du chômage, en semaines
- pop : population totale, en milliers d’habitants
Line plot basique
Diagramme linéaire de la variable “psavert” par date:
ggplot(data = economics, aes(x = date, y = psavert))+
geom_line()
Graphique à lignes multiples
Nous allons tracer ‘psavert’ et ‘uempmed’ sur le même graphique linéaire.
- Solution 1: Passez deux lignes de codes
geom_line()
:
ggplot(economics, aes(x=date)) +
geom_line(aes(y = psavert), color = "darkred") +
geom_line(aes(y = uempmed), color="steelblue", linetype="twodash")
- Solution 2:
- Préparer les données à l’aide des packages
tidyverse
. Regroupe les deux variablespsavert
etuempmed
en paires de valeurs-clés - Visualiser à l’aide d’une ligne de geom_line()
- Préparer les données à l’aide des packages
# Préparation des données
library("tidyverse")
df <- economics %>%
dplyr::select(date, psavert, uempmed) %>%
gather(key = "variable", value = "value", -date)
head(df)
## # A tibble: 6 x 3
## date variable value
## <date> <chr> <dbl>
## 1 1967-07-01 psavert 12.6
## 2 1967-08-01 psavert 12.6
## 3 1967-09-01 psavert 11.9
## 4 1967-10-01 psavert 12.9
## 5 1967-11-01 psavert 12.8
## 6 1967-12-01 psavert 11.8
# Visualisation
ggplot(df, aes(x = date, y = value)) +
geom_line(aes(color = variable, linetype = variable)) +
scale_color_manual(values = c("darkred", "steelblue"))
Version: English
Bonjour !
Super ces explications, c’est exactement ce que je cherchais à faire avec 3 courbes. Par contre j’ai une question : Si on utilise la première solution (plusieurs lignes geom()), comment peut-on rajouter une légende ?
Par avance merci !
Mathieu
Merci pour le commentaire positif, fortement apprécié! Voici, comment je ferai pour ajouter une légende: je spécifie la variable color dans aes() en lui attribuant le nom que je souhaite voir afficher dans la légende.