La funzione scale_x_discrete in R

Jinku Hu 16 luglio 2021
  1. Usa scale_x_discrete per invertire l’ordine degli elementi sull’asse x nel grafico R
  2. Usa scale_x_discrete per visualizzare il sottoinsieme di elementi sull’asse x in R
  3. Usa scale_x_discrete per rinominare le etichette degli oggetti sull’asse x in R
  4. Usa scale_x_discrete per modificare il nome dell’asse x in R
La funzione scale_x_discrete in R

Questo articolo introdurrà la funzione scale_x_discrete in R.

Usa scale_x_discrete per invertire l’ordine degli elementi sull’asse x nel grafico R

scale_x_discrete viene utilizzato per impostare i valori per l’estetica della scala dell’asse x discreta. In questo articolo, costruiamo più grafici boxplot usando le funzioni ggplot e geom_boxplot per dimostrare l’effetto di diversi parametri in scale_x_discrete. Capita spesso che l’ordine degli elementi sull’asse debba essere invertito e il metodo piùfacile per farloèimpostare il parametro limits del parametro scale_x_discrete con il valore di rev(levels(dataset_name$X_axis_items)). Notare che il nome del set di dati viene prima, seguito dal simbolo $, quindi specifichiamo i dati dell’asse x che devono essere invertiti.

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_discreto in r 1

Usa scale_x_discrete per visualizzare il sottoinsieme di elementi sull’asse x in R

Un’altra caratteristica utile della funzione scale_x_discrete è eliminare alcuni elementi dall’asse x e disegnarne solo una manciata. In questo caso, utilizziamo il set di dati PlantGrowth in cui sono elencate tre categorie di gruppi. Quindi, possiamo produrre il boxplot con solo i gruppi trt2 e trt1, come mostrato nel seguente frammento di codice.

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_discreto in r 2

Usa scale_x_discrete per rinominare le etichette degli oggetti sull’asse x in R

La funzione scale_x_discrete può essere utilizzata anche per rinominare le etichette degli elementi lungo l’asse x. È possibile fornire nuovi valori di etichetta con il vettore assegnato al parametro labels nella funzione 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_discreto in r 3

Usa scale_x_discrete per modificare il nome dell’asse x in R

Notare che ogni metodo precedente può essere combinato per produrre la struttura del grafico desiderata. Ad esempio, il seguente codice di esempio disegna p4 per mostrare solo il sottoinsieme di elementi e rinominare queste etichette con i valori forniti. Inoltre, utilizziamo scale_x_discrete per modificare il nome lungo l’asse x utilizzando il parametro 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_discreto in r 4

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

Articolo correlato - R Plot