> langage et graphiques > Graphiques > Boxplot
Boxplot
Objectif : on cherche à représenter, pour chaque série de valeurs, la distribution de celles-ci de manière très simplifiée avec seulement la médiane et quelques autres valeurs caractéristiques de la série.
boxplot : permet de représenter une distribution de valeurs sous forme simplifiée avec la médiane (trait épais), une boîte s'étendant du quartile 0.25 au quartile 0.75, et des moustaches qui s'étendent par défaut jusqu'à la valeur distante d'au maximum 1.5 fois la distance interquartile.
Différentes formes :
- boxplot(c(3, 5, 6, 7, 4, 5)) : avec un simple vecteur (une seule boîte représentée).
- boxplot(list(a = c(3, 5, 6, 7, 4, 5), b = c(7, 5, 6, 7, 8, 4))) : avec une liste de vecteurs donnant une boîte par vecteur.
- fr <- data.frame(val = c(4, 5, 6, 3, 5, 7, 8, 9), lev = factor(c("A", "A", "B", "A", "A", "B", "B", "B"))); boxplot(val ~ lev, fr) avec un frame comportant une colonne de valeurs et une colonne de facteurs : une boîte par valeur du facteur.
Paramètres de boxplot :
boxplot(val ~ lev, fr, range = 0.3, varwidth = TRUE, names = c("a", "b"), boxwex = 0.5, border = "blue", col = "pink", horizontal = TRUE, ylab = "factors", main = "title")
:
- range : règle la longeur des moustaches (si c'est 0, les moustaches vont du min au max).
- varwidth : si TRUE, largeur des boîtes proportionnelle à sqrt(n) où n est le nombre de valeurs.
- names : renommage des catégories de chaque boîte.
- boxwex : facteur d'expansion de la largeur des boîtes.
- border : couleur de la bordure des boîtes.
- col : couleur de l'intérieur des boîtes.
- horizontal : si TRUE, les boîtes sont horizontales plutôt que verticales.
Boxplot renvoie une liste avec en particulier les attributs suivants :
- stats : une matrice 5 x n où n est le nombre de groupes et les lignes correspondent à : moustache basse, 1er quartile, mediane, 3ème quartile, moustache haute.
- n : le nombre d'individus dans chaque groupe.
- names : les noms des groupes.
Boxplot en indiquant l'effectif au-dessus de la barre de chaque groupe :
fr <- data.frame(val = c(4, 5, 6, 3, 5, 7, 8, 9),
lev = factor(c("A", "A", "B", "A", "A", "B", "B", "B")))
bp <- boxplot(val ~ lev, fr, range = 0.3, varwidth = TRUE, names = c("a", "b"),
col = "skyblue", ylab = "factors", ylim = c(0, max(fr$val) + 1), main = "title")
text(seq(ncol(bp$stats)), bp$stats[5, ] + 0.5, bp$n, col = "red")
Boxplot avec 2 facteurs
fr <- data.frame(val = c(2, 5, 3, 1, 4, 6, 7, 3),
lev1 = c("A", "B", "A", "A", "B", "A", "B", "A"),
lev2 = c("a", "a", "a", "b", "a", "b", "b", "b"))
boxplot(val ~ lev1 * lev2, fr)
Pour faire un boxplot avec des boîtes groupées par groupe :
boxplot(value ~ construct + ratio, fr, ylab = "Value", at = c(1, 2, 3, 5, 6, 7, 9, 10, 11))
Copyright Aymeric Duclert
programmer en R, tutoriel R, graphes en R