La función scale_x_discrete en R

Jinku Hu 30 enero 2023
  1. Utilice scale_x_discrete para invertir el orden de los elementos en el eje x en la gráfica R
  2. Utilice scale_x_discrete para mostrar el subconjunto de elementos en el eje x en R
  3. Utilice scale_x_discrete para cambiar el nombre de las etiquetas de los elementos en el eje x en R
  4. Utilice scale_x_discrete para modificar el nombre del eje x en R
La función scale_x_discrete en R

Este artículo presentará la función scale_x_discrete en R.

Utilice scale_x_discrete para invertir el orden de los elementos en el eje x en la gráfica R

scale_x_discrete se usa para establecer valores para la estética de la escala discreta del eje x. En este artículo, construimos múltiples gráficos de diagrama de caja usando las funciones ggplot y geom_boxplot para demostrar el efecto de diferentes parámetros en scale_x_discrete. A menudo ocurre que el orden de los elementos en el eje debe invertirse, y el método más fácil para lograrlo es establecer el parámetro limits del parámetro scale_x_discrete con el valor de rev(levels(dataset_name$X_axis_items)). Observe que el nombre del conjunto de datos viene primero, seguido del símbolo ‘$’, y luego especificamos los datos del eje x que deben invertirse.

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 en r 1

Utilice scale_x_discrete para mostrar el subconjunto de elementos en el eje x en R

Otra característica útil de la función scale_x_discrete es eliminar algunos elementos del eje x y dibujar solo un puñado de ellos. En este caso, utilizamos el conjunto de datos PlantGrowth donde se enumeran tres categorías de grupos. Por lo tanto, podemos generar el diagrama de caja con solo los grupos trt2 y trt1, como se muestra en el siguiente fragmento de código.

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 en r 2

Utilice scale_x_discrete para cambiar el nombre de las etiquetas de los elementos en el eje x en R

La función scale_x_discrete también se puede utilizar para cambiar el nombre de las etiquetas de los elementos a lo largo del eje x. Se pueden suministrar nuevos valores de etiqueta con el vector asignado al parámetro labels en la función 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 en r 3

Utilice scale_x_discrete para modificar el nombre del eje x en R

Tenga en cuenta que cada método anterior se puede combinar para generar la estructura de gráfico deseada. Por ejemplo, el siguiente código de ejemplo dibuja p4 para mostrar solo el subconjunto de elementos y cambiar el nombre de estas etiquetas con los valores proporcionados. Además, utilizamos scale_x_discrete para modificar el nombre a lo largo del eje x usando el parámetro 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 en r 4

Autor: 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

Artículo relacionado - R Plot