La fonction boxplot() de R

Les boîtes à moustaches avec R

Voici un exemple d’initiation au tracé de box-plots avec graphics, un package de R (automatiquement chargé à l’ouverture de R).

boîtes à moustaches

 

Contexte

Nous travaillerons sur le prix des marchandises vendues par un antiquaire sur deux mois consécutifs. Ceux-ci se trouvent sur une feuille de calcul Excel, sur deux colonnes et nous utiliserons la version cloud de R-Studio.

Voici les données au cas où vous souhaiteriez refaire l'exercice. La colonne prix_1 comporte le prix de 50 antiquités vendues en janvier (reproduites ici en tableau pour commodité de lecture ; elles servent aussi pour l'exemple d'histogrammes avec R).

prix_1 255 780 2 600
80 280 860 3 000
80 320 900 3 000
80 350 950 3 200
100 400 950 3 500
110 420 1 200 4 200
120 450 1 250 4 300
140 500 1 350 4 500
140 520 1 400 4 600
160 520 1 600 4 600
200 580 2 200 4 800
240 650 2 200 4 900
250 740 2 200

La colonne prix_2 reprend les prix de 10 antiquités vendues en février.

prix_2 130 380 2 400
100 200 1 450 4 500
110 240 2 100  

timbres d'antiquités

 

Script

# Charger le package pour lire Excel

library(readxl)

# Importer les données

data <- read_excel("/cloud/project/antiquaire2.xlsx")

# Extraire les deux séries de prix

prix1 <- data$prix_1
prix2 <- data$prix_2

# Tracer les box-plots avec couleurs

boxplot(prix1, prix2,
names = c("Janvier", "Février"),
col = c("lightblue", "pink"),
border = c("darkblue", "darkred"),
main = "Ventes de janvier et février",
ylab = "Prix")

# Ajouter la moyenne sous forme de point

points(1, mean(prix1, na.rm = TRUE), pch = 19, col = "darkblue")
points(2, mean(prix2, na.rm = TRUE), pch = 19, col = "darkred")

# Ajouter une grille

grid()

# Ajouter une légende

legend("topright",
legend = c("Janvier", "Février", "Moyenne"),
fill = c("lightblue", "pink", NA),
border = c("darkblue", "darkred", NA),
pch = c(NA, NA, 19),
col = c(NA, NA, "black"))

Il y aura donc une boîte de couleur (col) bleu clair avec une bordure (border) bleu foncé et une autre de couleur rose avec une bordure rouge foncé.

Par défaut, les boîtes à moustaches réalisées par graphics n’indiquent pas la moyenne. Nous la rajoutons ici, représentée par un point dont la forme est précisée par pch = 19 (voir en page plot() les différentes formes de points). na.rm = TRUE signifie que l’on retire les valeurs manquantes ; c’est une sécurité inutile dans cet exemple mais il est toujours bon de l’indiquer.

La lecture des box-plots est facilitée par une grille. C’est pourquoi nous avons inséré grid().

Voici le résultat :

box-plots

Toutefois, la grille verticale est inutile. Nous aurions pu tracer une grille horizontale grise en pointillés, par exemple :

abline(h = axTicks(2), col = "gray80", lty = "dotted")

Il saute aux yeux que la légende est mal placée puisqu’elle empiète sur le graphique. Avec graphics, il faut augmenter la taille des marges pour y inclure la légende (mais ce n'est pas le sujet de cette page, hélas).

 

boîte à moustaches