La funzione scale_x_discrete in R
-
Usa
scale_x_discrete
per invertire l’ordine degli elementi sull’assex
nel grafico R -
Usa
scale_x_discrete
per visualizzare il sottoinsieme di elementi sull’assex
in R -
Usa
scale_x_discrete
per rinominare le etichette degli oggetti sull’assex
in R -
Usa
scale_x_discrete
per modificare il nome dell’assex
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)
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)
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)
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)
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