boxplot() dans R : comment créer BoxTracés dans RStudio [Exemples]

boxplot() dans R

boxplot() dans R permet de visualiser la répartition des données par quartile et de détecter la présence de valeurs aberrantes. Vous pouvez utiliser l'objet géométrique geom_boxplot() de la bibliothèque ggplot2 pour dessiner un boxplot() dans R.

Nous utiliserons l'ensemble de données sur la qualité de l'air pour introduire boxplot() dans R avec ggplot. Cet ensemble de données mesure la qualité de l'air de New York de mai à septembre 1973. L'ensemble de données contient 154 observations. Nous utiliserons les variables suivantes :

  • Ozone : variable numérique
  • Vent : Variable numérique
  • Mois : mai à septembre. Variable numérique

Créer Box Terrain

Avant de commencer à créer votre premier boxplot() dans R, vous devez manipuler les données comme suit :

  • Étape 1 : Importer les données
  • Étape 2 : Supprimez les variables inutiles
  • Étape 3 : Convertir le mois en niveau de facteur
  • Étape 4 : Créez une nouvelle variable catégorielle divisant le mois en trois niveaux : début, milieu et fin.
  • Étape 5 : Supprimer les observations manquantes

Toutes ces étapes sont effectuées avec dplyr et l'opérateur de pipeline %>%.

library(dplyr)
library(ggplot2)
# Step 1
data_air <- airquality % > %

#Step 2
select(-c(Solar.R, Temp)) % > %

#Step 3
mutate(Month = factor(Month, order = TRUE, labels = c("May", "June", "July", "August", "September")), 
       
#Step 4 
day_cat = factor(ifelse(Day < 10, "Begin", ifelse(Day < 20, "Middle", "End"))))

Une bonne pratique consiste à vérifier la structure des données avec la fonction glimpse().

glimpse(data_air)

Sortie :

## Observations: 153
## Variables: 5
## $ Ozone   <int> 41, 36, 12, 18, NA, 28, 23, 19, 8, NA, 7, 16, 11, 14, ...
## $ Wind    <dbl> 7.4, 8.0, 12.6, 11.5, 14.3, 14.9, 8.6, 13.8, 20.1, 8.6...
## $ Month   <ord> May, May, May, May, May, May, May, May, May, May, May,...
## $ Day     <int> 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16,...
## $ day_cat <fctr> Begin, Begin, Begin, Begin, Begin, Begin, Begin, Begi...

Il y a des NA dans l'ensemble de données. Les supprimer est sage.

# Step 5
data_air_nona <-data_air %>% na.omit()	

Boîte à moustaches de base

Traçons le R boxplot() de base avec la distribution de l'ozone par mois.

# Store the graph
box_plot <- ggplot(data_air_nona, aes(x = Month, y = Ozone))
# Add the geometric object box plot
box_plot +
    geom_boxplot()

Explication du code

  • Stockez le graphique pour une utilisation ultérieure
    • box_plot : vous stockez le graphique dans la variable box_plot. Ceci est utile pour une utilisation ultérieure ou évite une ligne de codes trop complexe.
  • Ajouter l'objet géométrique de R boxplot()
    • Vous transmettez l'ensemble de données data_air_nona à ggplot boxplot.
    • À l’intérieur de l’argument aes(), vous ajoutez l’axe des x et l’axe des y.
    • Le signe + signifie que vous voulez que R continue à lire le code. Cela rend le code plus lisible en le cassant.
    • Utilisez geom_boxplot() pour créer une boîte à moustaches

Sortie :

Basic Box Terrain

Changer le côté du graphique

Vous pouvez inverser le côté du graphique.

box_plot +
  geom_boxplot()+
  coord_flip()

Explication du code

  • box_plot : Vous utilisez le graphique que vous avez stocké. Cela évite de réécrire tous les codes à chaque fois que vous ajoutez de nouvelles informations au graphique.
  • geom_boxplot() : Créer des boxplots() dans R
  • coord_flip() : Retourner le côté du graphique

Sortie :

Changer le côté du graphique

Changer la couleur de la valeur aberrante

Vous pouvez modifier la couleur, la forme et la taille des valeurs aberrantes.

box_plot +
    geom_boxplot(outlier.colour = "red",
        outlier.shape = 2,
        outlier.size = 3) +
    theme_classic()

Explication du code

  • outlier.colour=”red” : Contrôler la couleur des valeurs aberrantes
  • outlier.shape=2 : modifiez la forme de la valeur aberrante. 2 fait référence au triangle
  • outlier.size=3 : modifiez la taille du triangle. La taille est proportionnelle au nombre.

Sortie :

Changer la couleur de la valeur aberrante

Ajouter une statistique récapitulative

Vous pouvez ajouter une statistique récapitulative au R boxplot().

box_plot +
    geom_boxplot() +
    stat_summary(fun.y = mean,
        geom = "point",
        size = 3,
        color = "steelblue") +
    theme_classic()

Explication du code

  • stat_summary() permet d'ajouter un résumé au boxplot horizontal R
  • L'argument fun.y contrôle les statistiques renvoyées. Vous utiliserez la moyenne
  • Remarque : D'autres statistiques sont disponibles telles que min et max. Plusieurs statistiques peuvent être affichées dans le même graphique
  • geom = « point » : tracez la moyenne avec un point
  • size=3 : Taille du point
  • color =”steelblue” : Couleur des points

Sortie :

Ajouter une statistique récapitulative

Box Tracer avec des points

Dans la boîte à moustaches horizontale suivante R, vous ajoutez les couches de tracé de points. Chaque point représente une observation.

box_plot +
    geom_boxplot() +
    geom_dotplot(binaxis = 'y',
        dotsize = 1,
        stackdir = 'center') +
    theme_classic()

Explication du code

  • geom_dotplot() permet d'ajouter un point à la largeur du bac
  • binaxis='y' : change la position des points le long de l'axe y. Par défaut, l'axe des x
  • dotsize=1 : Taille des points
  • stackdir='center' : Façon d'empiler les points : Quatre valeurs :
    • « vers le haut » (par défaut),
    • "vers le bas"
    • "centre"
    • « centre entier »

Sortie :

Box Tracer avec des points

Contrôle Esthétique du Box Terrain

Changer la couleur de la boîte

Vous pouvez changer les couleurs du groupe.

ggplot(data_air_nona, aes(x = Month, y = Ozone, color = Month)) +
    geom_boxplot() +
    theme_classic()

Explication du code

  • Les couleurs des groupes sont contrôlées dans le mappage aes(). Vous pouvez utiliser color= Month pour changer la couleur de la boîte et du tracé des moustaches en fonction des mois.

Sortie :

Changer la couleur du Box

Box tracé avec plusieurs groupes

Il est également possible d'ajouter plusieurs groupes. Vous pouvez visualiser la différence de qualité de l'air selon le jour de la mesure.

ggplot(data_air_nona, aes(Month, Ozone)) +
    geom_boxplot(aes(fill = day_cat)) +
    theme_classic()

Explication du code

  • Le mappage aes() de l'objet géométrique contrôle les groupes à afficher (cette variable doit être un facteur)
  • aes(fill= day_cat) permet de créer trois cases pour chaque mois sur l'axe des x

Sortie :

Box Tracer avec plusieurs groupes

Box Tracer avec des points instables

Une autre façon d'afficher le point consiste à utiliser des points instables. C'est un moyen pratique de visualiser des points avec un boxplot pour les données catégorielles dans la variable R.

Cette méthode évite le chevauchement des données discrètes.

box_plot +
    geom_boxplot() +
    geom_jitter(shape = 15,
        color = "steelblue",
        position = position_jitter(width = 0.21)) +
    theme_classic()

Explication du code

  • geom_jitter() ajoute une petite dégradation à chaque point.
  • shape=15 change la forme des points. 15 représente les carrés
  • color = « steelblue » : Change la couleur du point
  • position=position_jitter(width = 0.21) : Moyen de placer les points qui se chevauchent. position_jitter(width = 0.21) signifie que vous déplacez les points de 20 % par rapport à l'axe des x. Par défaut, 40 pour cent.

Sortie :

Box Tracer avec des points instables

Vous pouvez voir la différence entre le premier graphique avec la méthode du jitter et le second avec la méthode des points.

box_plot +
    geom_boxplot() +
    geom_point(shape = 5,
        color = "steelblue") +
    theme_classic()

Box Tracer avec des points instables

Entaillé Box Terrain

Une fonctionnalité intéressante de geom_boxplot() est une fonction de boîte à moustaches encochée dans R. Le diagramme d'encoche rétrécit la boîte autour de la médiane. L’objectif principal d’un diagramme en boîte crantée est de comparer l’importance de la médiane entre les groupes. Il existe des preuves solides que deux groupes ont des médianes différentes lorsque les encoches ne se chevauchent pas. Une encoche est calculée comme suit :

Entaillé Box Terrain

avec est l'interquartile et le nombre d'observations.

box_plot +
    geom_boxplot(notch = TRUE) +
    theme_classic()

Explication du code

  • geom_boxplot(notch=TRUE) : Créer un boxplot horizontal encoché R

Sortie :

Entaillé Box Terrain

Résumé

Nous pouvons résumer les différents types de boxplot horizontal R dans le tableau ci-dessous :

Objectif Code
Boîte à moustaches de base
ggplot(df, aes( x = x1, y =y)) + geom_boxplot()
retourner le côté
ggplot(df, aes( x = x1, y =y)) + geom_boxplot() + coord_flip()
Boîte à moustaches entaillée
ggplot(df, aes( x = x1, y =y)) + geom_boxplot(notch=TRUE)
Box tracé avec des points instables
ggplot(df, aes( x = x1, y =y)) + geom_boxplot() + geom_jitter(position = position_jitter(0.21))

Vérifiez également: - Tutoriel R pour les débutants : apprendre le langage de programmation R