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:
- Préparation des données
- Chargement des packages R requis
- Diagrammes de dispersion de base
- Diagrammes de dispersion avec plusieurs groupes
- Ajouter des lignes de régression
- Ajoutez des traits marginaux à un nuage de points
- Disperser (jitter) les points pour réduire le chevauchement
- Ajout d’étiquettes de texte aux points
- Graphique à bulles
- Colorer par une variable continue
Livre Apparenté
GGPLOT2 - L’Essentiel pour une Visualisation Magnifique des Données dans RPré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
etshape
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
etlinetype
: 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()
etgeom_label()
: fonctions standard de ggplot2 pour ajouter du texte à un graphique.geom_text_repel()
etgeom_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
No Comments