Créer des 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 -
Utilisez la fonction
grid.arrange
pour 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))
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)
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)
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)))
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