Visualisation des Données à l'Aide de GGPlot2

GGPLOT Histogramme

Un graphique d’histogramme est une alternative au graphique de densité pour visualiser la distribution d’une variable continue. Ce graphique représente la distribution d’une variable continue en divisant les données par groupes et en comptant le nombre d’observations dans chaque groupe.

Cet article décrit comment créer des histogrammes à l’aide du package ggplot2 dans R.



Sommaire:

Livre Apparenté

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

Fonctions R clés

  • Fonction clé: geom_histgram().
  • Arguments clés pour personnaliser les graphiques:
    • color, size, linetype: changer la couleur, la taille et le type de ligne, respectivement
    • fill: changer la couleur de remplissage (pour les bar plots, les histogrammes et les diagrammes de densité)
    • alpha: créer une couleur semi-transparente.

Préparation des données

Créer des données (wdata) contenant les poids par sexe (M pour homme ; F pour femme):

set.seed(1234)
wdata = data.frame(
        sex = factor(rep(c("F", "M"), each=200)),
        weight = c(rnorm(200, 55), rnorm(200, 58))
        )

head(wdata, 4)
##   sex weight
## 1   F   53.8
## 2   F   55.3
## 3   F   56.1
## 4   F   52.7

Calculez le poids moyen par sexe en utilisant le package dplyr. Les données sont d’abord regroupées par sexe, puis résumées en calculant le poids moyen par groupe. L’opérateur %>% est utilisé pour combiner plusieurs opérations:

library("dplyr")
mu <- wdata %>% 
  group_by(sex) %>%
  summarise(grp.mean = mean(weight))
mu
## # A tibble: 2 x 2
##   sex   grp.mean
##   <fct>    <dbl>
## 1 F         54.9
## 2 M         58.1

Chargement des packages R requis

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

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

Histogramme basique

Nous commençons par créer un graphique, appelé a, que nous terminerons dans la section suivante en ajoutant une couche via la fonction geom_histogram().

a <- ggplot(wdata, aes(x = weight))

Le code R suivant crée des courbes de densité de base avec une ligne verticale correspondant à la valeur moyenne de la variable weight (geom_vline()):

# Diagramme de densité basique
a + geom_histogram(bins = 30, color = "black", fill = "gray") +
  geom_vline(aes(xintercept = mean(weight)), 
             linetype = "dashed", size = 0.6)

Notez que, par défaut:

  • Par défaut, geom_histogram() utilise 30 bins - ce n’est peut-être pas une bonne valeur par défaut. Vous pouvez modifier le nombre de cases (ex. : bins = 50) ou la largeur de la case (ex. : binwidth = 0.5)
  • L’axe des y correspond aux valeurs de weight. Si vous voulez changer le graphique pour avoir la densité sur l’axe des y, spécifiez l’argument y = ..density.. dans aes().

Changer la couleur par groupe

Le code R suivant changera la couleur des traits et de remplissage de l’histogramme. Les fonctions scale_color_manual() et scale_fill_manual() sont utilisées pour spécifier des couleurs personnalisées pour chaque groupe.

Nous allons procéder comme suit:

  • Changer les couleurs de remplissage et la couleur des lignes par groupe (sexe)
  • Ajoutez des lignes verticales des moyennes à l’aide de geom_vline(). Données : mu, qui contient les valeurs moyennes des poids (weights) par sexe (calculées dans la section précédente).
  • Modifier la couleur manuellement:
    • utiliser scale_color_manual() ou scale_colour_manual() pour changer la couleur des traits
    • utiliser scale_fill_manual() pour changer les couleurs de remplissage.
  • Ajuster la position des barres de l’histogramme en utilisant l’argument position. Valeurs autorisées : “identity”, “stack”, “dodge”. La valeur par défaut est “stack”.
# Changer la couleur des lignes par sexe
a + geom_histogram(aes(color = sex), fill = "white",
                   position = "identity") +
  scale_color_manual(values = c("#00AFBB", "#E7B800")) 

# changer manuellement la couleur de remplissage et de contour 
a + geom_histogram(aes(color = sex, fill = sex),
                         alpha = 0.4, position = "identity") +
  scale_fill_manual(values = c("#00AFBB", "#E7B800")) +
  scale_color_manual(values = c("#00AFBB", "#E7B800"))

Combiner l’histogramme et les courbes de densité

  • Créer un histogramme avec les valeurs de densité sur l’axe des y (au lieu des valeurs de comptage).
  • Ajout d’un graphe de densité avec un graphe de densité transparent
# Histogramme avec graphe de densité
a + geom_histogram(aes(y = stat(density)), 
                   colour="black", fill="white") +
  geom_density(alpha = 0.2, fill = "#FF666666") 
     

# Colorer par groupes
a + geom_histogram(aes(y = stat(density), color = sex), 
                   fill = "white",position = "identity")+
  geom_density(aes(color = sex), size = 1) +
  scale_color_manual(values = c("#868686FF", "#EFC000FF"))

Conclusion

Cet article décrit comment créer des histogrammes à l’aide du package ggplot2.



Version: English

GGPLOT Diagramme de Densité (Prev Lesson)
(Next Lesson) GGPLOT QQ Plot
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