Visualisation des Données à l'Aide de GGPlot2

GGPLOT Nuage de Points

Un graphique en nuage de points (également connu sous le nom de graphique X-Y ou graphique des points) est utilisé pour afficher la relation entre deux variables continues x et y.

En affichant une variable sur chaque axe, il est possible de déterminer s’il existe une association ou une corrélation entre les deux variables.

La corrélation peut être : positive (les valeurs augmentent ensemble), négative (une valeur diminue à mesure que l’autre augmente), nulle (aucune corrélation), linéaire, exponentielle et en U.

Cet article décrit comment créer des diagrammes de dispersion dans R en utilisant le package ggplot2.

Vous apprendrez à:

  • Colorer des points par groupes
  • Créez des graphiques à bulles
  • Ajouter une ligne de régression à un nuage de points


Sommaire:

Livre Apparenté

GGPLOT2 - L’Essentiel pour une Visualisation Magnifique des Données dans R

Préparation des données

Données de démonstration: mtcars. La variable cyl est utilisée comme variable de groupement.

# Charger les données
data("mtcars")
df <- mtcars

# Convertir cyl comme variable de groupement
df$cyl <- as.factor(df$cyl)

# Inspecter les données
head(df[, c("wt", "mpg", "cyl", "qsec")], 4)
##                  wt  mpg cyl qsec
## Mazda RX4      2.62 21.0   6 16.5
## Mazda RX4 Wag  2.88 21.0   6 17.0
## Datsun 710     2.32 22.8   4 18.6
## Hornet 4 Drive 3.21 21.4   6 19.4

Chargement des packages R requis

Chargez le package ggplot2 et mettez le thème par défaut à theme_bw() avec la légende en haut du graphique:

library(ggplot2)
theme_set(
  theme_bw() +
    theme(legend.position = "top")
  )

Diagrammes de dispersion de base

  • Fonctions clés : geom_point() pour créer des diagrammes de dispersion.
  • Arguments clés : color, size et shape pour changer la couleur, la taille et la forme des points.
# Initialiser un ggplot
b <- ggplot(df, aes(x = wt, y = mpg))

# Diagramme de dispersion de base
b + geom_point()
     
# Modifier la couleur, la forme et la taille
b + geom_point(color = "#00AFBB", size = 2, shape = 23)

Les différentes formes de points couramment utilisées dans R, comprennent:

Diagrammes de dispersion avec plusieurs groupes

Cette section décrit comment changer la couleur et la forme des points par groupe. Les fonctions scale_color_manual() et scale_shape_manual() sont utilisées pour personnaliser manuellement la couleur et la forme des points, respectivement.

Dans le code R ci-dessous, les formes et les couleurs des points sont contrôlées par les niveaux de la variable de groupement cyl :

# Modifier la forme des points en fonction des niveaux de Cyl
b + geom_point(aes(shape = cyl))
  
# Changer la forme et la couleur des points en fonction des niveaux de Cyl
# Définir des couleurs personnalisées
b + geom_point(aes(shape = cyl, color = cyl)) +
  scale_color_manual(values = c("#00AFBB", "#E7B800", "#FC4E07"))

Ajouter des lignes de régression

  • Fonction clé R : geom_smooth() pour ajouter des moyens conditionnels lissés / ligne de régression.
  • Arguments clés:
    • color, size et linetype : Modifier la couleur, la taille et le type de trait.
    • fill: Changer la couleur de remplissage de la zone de confiance.

Un format simplifié de la fonction `geom_smooth():

geom_smooth(method="auto", se=TRUE, fullrange=FALSE, level=0.95)
  • méthode : méthode de lissage à utiliser. Les valeurs possibles sont lm, glm, gam, loess, rlm.
    • method = “loess” : C’est la valeur par défaut pour un petit nombre d’observations. Il calcule une régression locale lissée. Vous pouvez en savoir plus sur loess en utilisant le code R ?loess.
    • method =“lm” : Il convient à un modèle linéaire. Notez qu’il est également possible d’indiquer la formule comme formula = y ~ poly(x, 3) pour spécifier un polynôme de degré 3.
  • se : valeur logique. Si TRUE, l’intervalle de confiance s’affiche autour de la courbe lissée.
  • fulllrange : valeur logique. Si TRUE, l’ajustement couvre toute l’échelle graphique
  • level : niveau de l’intervalle de confiance à utiliser. La valeur par défaut est 0,95

Pour ajouter une ligne de régression sur un nuage de points, la fonction geom_smooth() is used in combination with the argument method = lm. lm signifie modèle linéaire.

# Ajouter une ligne de régression
b + geom_point() + geom_smooth(method = lm)
  
# Point + ligne de régression
# Supprimer l'intervalle de confiance 
b + geom_point() + 
  geom_smooth(method = lm, se = FALSE)

# méthode loess : ajustement par régression locale
b + geom_point() + geom_smooth()

Changer la couleur et la forme des points par groupes:

# Changement de couleur et de forme par groupes (cyl)
b + geom_point(aes(color = cyl, shape=cyl)) + 
  geom_smooth(aes(color = cyl, fill = cyl), method = lm) +
  scale_color_manual(values = c("#00AFBB", "#E7B800", "#FC4E07"))+
  scale_fill_manual(values = c("#00AFBB", "#E7B800", "#FC4E07"))

# Supprimer les intervalles de confiance
# Étendre les lignes de régression : fullrange
b + geom_point(aes(color = cyl, shape = cyl)) + 
  geom_smooth(aes(color = cyl), method = lm, se = FALSE, fullrange = TRUE) +
    scale_color_manual(values = c("#00AFBB", "#E7B800", "#FC4E07"))+
  scale_fill_manual(values = c("#00AFBB", "#E7B800", "#FC4E07"))

Ajoutez des traits marginaux à un nuage de points

La fonction geom_rug() est utilisée pour afficher des cas individuels sur le graphique.

# Ajoutez des trais marginaux
b + geom_point() + geom_rug()

# Changer les couleurs par groupes
b + geom_point(aes(color = cyl)) + 
  geom_rug(aes(color = cyl))

# Ajoutez des traits marginaux en utilisant les données faithful
data(faithful)
ggplot(faithful, aes(x = eruptions, y = waiting)) +
  geom_point() + geom_rug()

Disperser (jitter) les points pour réduire le chevauchement

Le jeu de données mpg [dans ggplot2] est utilisé dans les exemples suivants.

Pour réduire le chevauchement des points, l’option position = position_jitter() avec les arguments width et height est utilisée:

  • weight : degré de dispersion dans la direction x.
  • height : degré de dispersion dans la direction y.
# Graphique par défaut
ggplot(mpg, aes(displ, hwy)) +
  geom_point()

# Utiliser jitter pour réduire le chevauchement
ggplot(mpg, aes(displ, hwy)) +
  geom_point(position = position_jitter(width = 0.5, height = 0.5))

Ajout d’étiquettes de texte aux points

Fonctions clés:

  • geom_text() et geom_label() : fonctions standard de ggplot2 pour ajouter du texte à un graphique.
  • geom_text_repel() et geom_label_repel()[dans le package ggrepel]. Annotations textuelles répulsives. Éviter le chevauchement du texte.

Installez d’abord ggrepel (install.packages("ggrepel")), puis tapez ceci:

library(ggrepel)

# Ajouter du texte au graphique
.labs <- rownames(df)
b + geom_point(aes(color = cyl)) +
  geom_text_repel(aes(label = .labs,  color = cyl), size = 3)+
  scale_color_manual(values = c("#00AFBB", "#E7B800", "#FC4E07"))

# Dessinez un rectangle sous le texte pour en faciliter la lecture.
b + geom_point(aes(color = cyl)) +
  geom_label_repel(aes(label = .labs,  color = cyl), size = 3)+
  scale_color_manual(values = c("#00AFBB", "#E7B800", "#FC4E07"))

Graphique à bulles

Dans un graphique à bulles, les points size is controlled by a continuous variable, here qsec. Dans le code R ci-dessous, l’argument alpha est utilisé pour contrôler la transparence des couleurs. alpha doit être compris entre 0 et 1

b + geom_point(aes(color = cyl, size = qsec), alpha = 0.5) +
  scale_color_manual(values = c("#00AFBB", "#E7B800", "#FC4E07")) +
  scale_size(range = c(0.5, 12))  # Réglage de la plage de tailles des points

Colorer par une variable continue

  • Colorer les points en fonction des valeurs de la variable continue : “mpg”.
  • Changez la couleur du dégradé bleu par défaut en utilisant la fonction scale_color_gradientn() [dans ggplot2], en spécifiant deux couleurs ou plus.
b + geom_point(aes(color = mpg), size = 3) +
  scale_color_gradientn(colors = c("#00AFBB", "#E7B800", "#FC4E07")) +
  theme(legend.position = "right")



Version: English

Introduction à GGPlot2 (Prev Lesson)
(Next Lesson) GGPLOT Boxplot
Back to Visualisation des Données à l’Aide de GGPlot2

No Comments

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

Teacher
Alboukadel Kassambara
Role : Fondateur de Datanovia
Read More