Passer au contenu principal
eLearner.app
Module 5 · Leçon 1 sur 29/10 dans le cours~12 min
Leçons du module (1/2)

Grammaire et Géométries de Base

La visualisation de données en R est dominée par ggplot2, un package basé sur la "Grammaire des Graphiques" (Grammar of Graphics). Cette théorie décompose les graphiques en composants sémantiques indépendants, tels que les données, les correspondances esthétiques et les éléments géométriques.


La Structure de ggplot2

Chaque graphique créé avec ggplot2 commence par un appel à la fonction ggplot(), à laquelle on associe un data frame et où l'on définit comment faire correspondre les colonnes du data frame aux propriétés visuelles via la fonction aes() (aesthetics).

Ensuite, nous ajoutons des couches géométriques en utilisant l'opérateur + (attention : on utilise + et non %>% dans ggplot2).

La structure de base est la suivante :

Code
ggplot(data = <DATA_FRAME>, mapping = aes(<ESTHÉTIQUES>)) +
  <GÉOMÉTRIE>()

Propriétés Esthétiques (aes) et Géométries (geom_*)

La fonction aes() définit quelles variables des données contrôlent les attributs du graphique :

  • x : Position sur l'axe horizontal.
  • y : Position sur l'axe vertical.
  • color : Couleur des points ou des lignes.
  • fill : Couleur de remplissage des formes fermées (ex. barres).
  • size : Taille des éléments.

Les géométries (geom_) définissent le type de représentation graphique :

1. Nuage de points (geom_point())

Idéal pour montrer la relation entre deux variables numériques.

Code
ggplot(df, aes(x = age, y = income)) +
  geom_point()

2. Graphique linéaire (geom_line())

Souvent utilisé pour des données temporelles ou des séries chronologiques.

Code
ggplot(df, aes(x = year, y = sales)) +
  geom_line()

3. Graphique en barres (geom_bar() et geom_col())

geom_bar() compte par défaut la fréquence de chaque catégorie, tandis que geom_col() représente directement les valeurs présentes dans une colonne y.

Code
# Représente la valeur de la colonne 'sales' pour chaque 'category'
ggplot(df, aes(x = category, y = sales)) +
  geom_col()

À vous de jouer

Exercice 1 : Créer un nuage de points de base

Exercice#r.m5.l1.e1
Tentatives : 0Chargement…

Créez un nuage de points (scatter plot) en utilisant le data frame df. Associez la colonne height à l'axe x et la colonne weight à l'axe y. Utilisez geom_point().

Chargement de l'éditeur…
Afficher l'indice

Assurez-vous d'utiliser ggplot(df, aes(x = height, y = weight)) + geom_point()

Solution disponible après 3 tentatives

Exercice 2 : Ajouter une couleur basée sur les données

Exercice#r.m5.l1.e2
Tentatives : 0Chargement…

Modifiez le graphique précédent en associant la propriété color à la colonne gender au sein de aes() pour colorer les points selon le genre.

Chargement de l'éditeur…
Afficher l'indice

Incluez color = gender au sein de aes(), par exemple : aes(x = height, y = weight, color = gender).

Solution disponible après 3 tentatives

Exercice 3 : Graphique linéaire

Exercice#r.m5.l1.e3
Tentatives : 0Chargement…

Créez un graphique linéaire en utilisant df. Associez la colonne year à l'axe x et la colonne sales à l'axe y. Ajoutez la couche géométrique geom_line().

Chargement de l'éditeur…
Afficher l'indice

Utilisez ggplot(df, aes(x = year, y = sales)) + geom_line()

Solution disponible après 3 tentatives

Exercice 4 : Graphique en barres avec geom_col

Exercice#r.m5.l1.e4
Tentatives : 0Chargement…

Créez un graphique en colonnes pour visualiser la valeur des données. Associez la colonne category à l'axe x et la colonne value à l'axe y. Utilisez la géométrie geom_col().

Chargement de l'éditeur…
Afficher l'indice

Utilisez ggplot(df, aes(x = category, y = value)) + geom_col()

Solution disponible après 3 tentatives

Exercice 5 : Combiner plusieurs géométries

Exercice#r.m5.l1.e5
Tentatives : 0Chargement…

Dans ggplot2, vous pouvez superposer des couches géométriques. Créez un graphique combinant geom_point() et geom_smooth() en associant x_val à l'axe x et y_val à l'axe y.

Chargement de l'éditeur…
Afficher l'indice

Ajoutez geom_point() et geom_smooth() séparés par le signe '+'.

Solution disponible après 3 tentatives