Ajouter un rectangle transparent à Boxplot dans R

Jinku Hu 15 février 2024
  1. Utilisez la fonction rect pour ajouter un rectangle transparent à une boîte à moustaches dans R
  2. Utilisez la fonction annotate avec ggplot pour ajouter un rectangle transparent à une boîte à moustaches dans R
Ajouter un rectangle transparent à Boxplot dans R

Cet article montrera plusieurs méthodes sur la façon d’ajouter un rectangle transparent à une boîte à moustaches dans R.

Utilisez la fonction rect pour ajouter un rectangle transparent à une boîte à moustaches dans R

Un rectangle transparent peut être dessiné en superposition au graphique existant, construit à l’aide de la fonction boxplot. La fonction rect est appelée après la fonction plot pour tracer le rectangle. Notez que rect peut également être utilisé pour dessiner une séquence de rectangles avec les coordonnées données. Dans ce cas, nous n’ajoutons qu’un rectangle à la boîte à moustaches qui se superpose en arrière-plan. La fonction rect prend les positions comme les quatre premiers arguments, qui spécifient la zone du rectangle. Ces quatre arguments peuvent être passés sous forme de valeur scalaire ou de vecteur de scalaires. L’exemple suivant prend le jeu de données mtcars et ses deux colonnes numériques pour dessiner sur des échelles. Comme les valeurs sont numériques, nous pouvons utiliser la fonction max pour spécifier certaines positions. La fonction rect peut également prendre la couleur comme paramètre pour remplir le rectangle. Cette fois, la fonction rgb permet de passer la valeur de la couleur et le paramètre alpha représentant son opacité.

boxplot(hp ~ mpg, data = mtcars,
       xlab = "Miles/(US) gallon", ylab = "Gross Horsepower",
       col = "orange")

rect(-1, -1, max(mtcars$hp + 100), max(mtcars$hp) + 100,
     col= rgb(red = 0.95, green = 0.8, blue = 0.3, alpha = 0.2))

fonction rect rectangulaire transparent

Utilisez la fonction annotate avec ggplot pour ajouter un rectangle transparent à une boîte à moustaches dans R

Si le tracé est construit à l’aide de la bibliothèque ggplot, nous pouvons utiliser la fonction annotate pour ajouter un rectangle transparent. L’extrait de code suivant affiche la boîte à moustaches avec les valeurs des caractères sur l’axe des x. La fonction annotate prend la chaîne rect comme premier argument pour spécifier la forme du rectangle de la couche d’annotation. Les quatre arguments suivants spécifient les valeurs de position de la forme. Même si l’axe des x a des valeurs non numériques, la fonction peut énumérer leurs positions et ajuster les numéros de position tels qu’ils sont passés par l’utilisateur.

library(ggplot2)
library(dplyr)

p1 <- ggplot(InsectSprays, aes(x = spray, y = count)) +
  geom_boxplot(fill = "pink") +
  scale_x_discrete(name = "Number of babies") +
  ggtitle("Title of the Plot") +
  annotate("rect", xmin = 1, xmax = 3, ymin = 0, ymax = max(InsectSprays$count),
           alpha = .2, fill = "orange")

p1

rectangle transparent annoter ggplot

Alternativement, on peut utiliser la fonction annotate pour dessiner un rectangle sur un graphique en courbes et mettre en évidence la plage spécifique du tracé. Notez que lorsque les échelles ont des valeurs numériques, les arguments *min/*max peuvent prendre les valeurs exactes de ces plages.

library(ggplot2)
library(babynames)
library(dplyr)

dat <- babynames %>%
  filter(name %in% c("Alice", "Maude", "Mae")) %>%
  filter(sex=="F")

p1 <- ggplot(dat, aes(x = year, y = n, color = name)) +
  geom_line() +
  scale_y_continuous(
    breaks = seq(0, 15000, 1000),
    name = "Number of babies") +
  ggtitle("Name Popularity Through Years") +
  annotate("rect", xmin = 1960, xmax = 2000, ymin = -1, ymax = max(dat$n),
         alpha = .2, fill = "orange")

p1

rectangle transparent ggplot xmax

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