Créer des boîtes à moustaches côte à côte dans R

Jinku Hu 30 janvier 2023
  1. Utilisez la fonction par pour créer des boîtes à moustaches côte à côte dans R
  2. Utilisez la fonction grid.arrange pour créer des boîtes à moustaches côte à côte dans R
Créer des boîtes à moustaches côte à côte dans R

Cet article présentera les méthodes de création de boîtes à moustaches côte à côte dans R.

Utilisez la fonction par pour créer des boîtes à moustaches côte à côte dans R

La fonction par permet de définir des paramètres graphiques. L’appel de la fonction sans argument ou no.readonly = TRUE récupère tous les paramètres graphiques. Dans ce cas, nous utilisons le paramètre mfrow pour construire des boxplots côte à côte. mfrow est passé dans le vecteur c(nr, nc) et les tracés suivants sont tracés sous forme de tableau nr par nc. L’exemple de code suivant construit deux boxplots à partir de l’ensemble de données InsectSprays, où les colonnes count et spray sont tracées en conséquence. Même si un examen approfondi de la fonction boxplot dépasse le cadre de cet article, il faut l’argument col pour spécifier la couleur des corps de la boîte. Notez que le dernier appel de fonction par(mfrow=c(1,1)) est utilisé pour réinitialiser la disposition aux paramètres par défaut.

par(mfrow=c(1,2))
boxplot(count ~ spray, data = InsectSprays, col = "pink")
boxplot(count ~ spray, data = InsectSprays, col = "yellow")
par(mfrow=c(1,1))

boxplot côte à côte r 1

Utilisez la fonction grid.arrange pour créer des boîtes à moustaches côte à côte dans R

Alternativement, nous pouvons utiliser la fonction grid.arrange du package gridExtra. grid.arrange se comporte de manière similaire à la fonction par. Néanmoins, il est plus flexible et intuitif avec plusieurs tracés, en particulier les objets ggplot. grid.arrange prend une longueur variable d’objets ggplot comme arguments de départ. Après, nous pouvons spécifier des arguments optionnels, à savoir, le paramètre ncol désignant le nombre de colonnes qui doivent être créées pour les tracés. L’extrait de code suivant dessine deux boîtes à moustaches côte à côte.

library(ggplot2)
library(gridExtra)

plot1 <- ggplot(InsectSprays, aes(x = spray, y = count)) + geom_boxplot(fill = "pink")
plot2 <- ggplot(InsectSprays, aes(x = spray, y = count)) + geom_boxplot(fill = "yellow")
grid.arrange(plot1, plot2, ncol = 2)

boxplot côte à côte r 2

grid.arrange peut également créer des fenêtres divisées en deux dimensions spécifiées en utilisant à la fois les paramètres nrow et ncol. Notez que les objets ggplot peuvent être combinés dans une liste et passés sous la forme de l’argument grobs = list(...). L’exemple suivant génère quatre boîtes à moustaches dans un style de matrice deux par deux.

library(ggplot2)
library(gridExtra)

plot1 <- ggplot(InsectSprays, aes(x = spray, y = count)) + geom_boxplot(fill = "pink")
plot2 <- ggplot(InsectSprays, aes(x = spray, y = count)) + geom_boxplot(fill = "yellow")
plot3 <- ggplot(InsectSprays, aes(x = spray, y = count)) + geom_boxplot(fill = "orange")
plot4 <- ggplot(InsectSprays, aes(x = spray, y = count)) + geom_boxplot(fill = "cyan")
grid.arrange(plot1, plot2, plot3, plot4, nrow = 2, ncol = 2)

boxplot côte à côte r 3

Un autre paramètre utile pour la fonction grid.arrange est layout_matrix, qui positionne chaque tracé dans une structure personnalisée spécifiée avec des vecteurs combinés. L’exemple définit trois objets de tracé différents construits dans une structure de fenêtre asymétrique - deux tracés en haut et un en dessous. Le nombre de vecteurs dans rbind correspond aux rangées de fenêtres, et les éléments de chaque objet spécifient le nombre de parties en lesquelles la rangée de fenêtres donnée doit être divisée. Pendant ce temps, les nombres correspondent aux parcelles d’argument dans le même ordre. Si toutes les fenêtres divisées de la deuxième rangée doivent être occupées par le troisième tracé, tous les éléments du deuxième vecteur doivent avoir la valeur - 3.

library(ggplot2)
library(gridExtra)

plot1 <- ggplot(InsectSprays, aes(x = spray, y = count)) + geom_boxplot(fill = "pink")
plot2 <- ggplot(mtcars, aes(x = mpg)) + geom_histogram(fill = "yellow", bins = 30)
plot3 <- ggplot(mtcars, aes(x = wt, y = mpg)) + geom_point(fill = "orange")

grid.arrange(plot1, plot2, plot3, widths = c(2, 2, 1),
    layout_matrix = rbind(c(1, 2, 2), c(3, 3, 3)))

boxplot côte à côte r 4

Auteur: Jinku Hu
Jinku Hu avatar Jinku Hu avatar

Founder of DelftStack.com. Jinku has worked in the robotics and automotive industries for over 8 years. He sharpened his coding skills when he needed to do the automatic testing, data collection from remote servers and report creation from the endurance test. He is from an electrical/electronics engineering background but has expanded his interest to embedded electronics, embedded programming and front-/back-end programming.

LinkedIn Facebook

Article connexe - R Plot