Comment Créer un GGPLOT contenant Plusieurs Lignes



Comment Créer un GGPLOT contenant Plusieurs Lignes

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 R

Charger 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:
    1. Préparer les données à l’aide des packages tidyverse. Regroupe les deux variables psavert et uempmed en paires de valeurs-clés
    2. Visualiser à l’aide d’une ligne de geom_line()
# 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





Comments ( 2 )

  • Mathieu

    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

    • Kassambara

      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.

      library(ggplot2)
      theme_set(theme_minimal())
      data(economics)
      ggplot(economics, aes(x = date)) +
        geom_line(aes(y = psavert, color = "psavert")) +
        geom_line(aes(y = uempmed, color = "uempmed"), linetype = "twodash") +
        scale_color_manual(values = c("darkred", "steelblue"))

Give a comment

Want to post an issue with R? If yes, please make sure you have read this: How to Include Reproducible R Script Examples in Datanovia Comments