La fonction scale_x_discrete dans R

Jinku Hu 30 janvier 2023
  1. Utilisez scale_x_discrete pour inverser l’ordre des éléments sur l’axe x dans le tracé R
  2. Utilisez scale_x_discrete pour afficher le sous-ensemble d’éléments sur l’axe x dans R
  3. Utilisez scale_x_discrete pour renommer les étiquettes des éléments sur l’axe x dans R
  4. Utilisez scale_x_discrete pour modifier le nom de l’axe x dans R
La fonction scale_x_discrete dans R

Cet article présentera la fonction scale_x_discrete dans R.

Utilisez scale_x_discrete pour inverser l’ordre des éléments sur l’axe x dans le tracé R

scale_x_discrete est utilisé pour définir des valeurs pour l’esthétique de l’échelle discrète de l’axe X. Dans cet article, nous construisons plusieurs graphes à moustaches en utilisant les fonctions ggplot et geom_boxplot pour démontrer l’effet de différents paramètres dans scale_x_discrete. Il arrive souvent que l’ordre des éléments sur l’axe doive être inversé, et la méthode la plus simple pour y parvenir est de définir le paramètre limits du paramètre scale_x_discrete avec la valeur de rev(levels(dataset_name$X_axis_items)). Notez que le nom de l’ensemble de données vient en premier, suivi du symbole $, puis nous spécifions les données de l’axe des x qui doivent être inversées.

library(ggplot2)
library(gridExtra)

p1 <- ggplot(Loblolly, aes(x = Seed, y = height)) +
  geom_boxplot(fill = "cyan")

p2 <- ggplot(Loblolly, aes(x = Seed, y = height)) +
  geom_boxplot(fill = "orange") +
  scale_x_discrete(limits = rev(levels(Loblolly$Seed)))

grid.arrange(p1, p2, ncol = 2, nrow =2)

scale_x_discrete dans r 1

Utilisez scale_x_discrete pour afficher le sous-ensemble d’éléments sur l’axe x dans R

Une autre fonctionnalité utile de la fonction scale_x_discrete est d’éliminer certains éléments de l’axe des x et de n’en dessiner qu’une poignée. Dans ce cas, nous utilisons le jeu de données PlantGrowth où trois catégories de groupes sont répertoriées. Ainsi, nous pouvons générer la boîte à moustaches avec uniquement les groupes trt2 et trt1, comme indiqué dans l’extrait de code suivant.

library(ggplot2)
library(gridExtra)

p1 <- ggplot(Loblolly, aes(x = Seed, y = height)) +
  geom_boxplot(fill = "cyan")

p2 <- ggplot(Loblolly, aes(x = Seed, y = height)) +
  geom_boxplot(fill = "orange") +
  scale_x_discrete(limits = rev(levels(Loblolly$Seed)))

p3 <- ggplot(PlantGrowth, aes(x = group, y = weight)) +
  geom_boxplot(fill = "pink")

p4 <- ggplot(PlantGrowth, aes(x = group, y = weight)) +
  geom_boxplot(fill = "green") +
  scale_x_discrete(limits = c("trt2", "trt1"))

grid.arrange(p1, p2, p3, p4, ncol = 2, nrow =2)

scale_x_discrete dans r 2

Utilisez scale_x_discrete pour renommer les étiquettes des éléments sur l’axe x dans R

La fonction scale_x_discrete peut également être utilisée pour renommer les étiquettes des éléments le long de l’axe des x. De nouvelles valeurs d’étiquettes peuvent être fournies avec le vecteur affecté au paramètre labels dans la fonction scale_x_discrete.

library(ggplot2)
library(gridExtra)

p1 <- ggplot(PlantGrowth, aes(x = group, y = weight)) +
  geom_boxplot(fill = "cyan")

p2 <- ggplot(PlantGrowth, aes(x = group, y = weight)) +
  geom_boxplot(fill = "pink") +
  scale_x_discrete(
    labels = c("Control", "Treatment 1", "Treatment 2")
  )

grid.arrange(p1, p2, ncol = 2, nrow =2)

scale_x_discrete dans r 3

Utilisez scale_x_discrete pour modifier le nom de l’axe x dans R

Notez que chaque méthode précédente peut être combinée pour produire la structure graphique souhaitée. Par exemple, l’exemple de code suivant dessine p4 pour afficher uniquement le sous-ensemble d’éléments et renommer ces étiquettes avec les valeurs fournies. De plus, nous utilisons scale_x_discrete pour modifier le nom le long de l’axe des x à l’aide du paramètre name.

library(ggplot2)
library(gridExtra)

p1 <- ggplot(PlantGrowth, aes(x = group, y = weight)) +
  geom_boxplot(fill = "cyan")

p2 <- ggplot(PlantGrowth, aes(x = group, y = weight)) +
  geom_boxplot(fill = "pink") +
  scale_x_discrete(
    labels = c("Control", "Treatment 1", "Treatment 2")
  )

p3 <- ggplot(OrchardSprays, aes(x = treatment, y = decrease)) +
  geom_boxplot(fill = "orange")

p4 <- ggplot(OrchardSprays, aes(x = treatment, y = decrease)) +
  geom_boxplot(fill = "green") +
  scale_x_discrete(
    limits = c("A", "B"),
    labels = c("Alice", "Bob"),
    name = "Treatment"
  )

grid.arrange(p1, p2, p3, p4, ncol = 2, nrow =2)

scale_x_discrete dans 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