A função scale_x_discrete em R
-
Use
scale_x_discrete
para inverter a ordem dos itens no eixox
no gráfico R -
Use
scale_x_discrete
para exibir o subconjunto de itens no eixox
em R -
Use
scale_x_discrete
para renomear os rótulos dos itens no eixox
em R -
Use
scale_x_discrete
para modificar o nome do eixox
em R
Este artigo irá apresentar a função scale_x_discrete
em R.
Use scale_x_discrete
para inverter a ordem dos itens no eixo x
no gráfico R
scale_x_discrete
é usado para definir valores para estética de escala discreta do eixo x. Neste artigo, construímos vários gráficos de boxplot usando as funções ggplot
e geom_boxplot
para demonstrar o efeito de diferentes parâmetros em scale_x_discrete
. Muitas vezes é o caso em que a ordem dos itens no eixo precisa ser invertida, e o método mais fácil para fazer isso é definir o parâmetro limits
do parâmetro scale_x_discrete
com o valor de rev(levels(dataset_name$X_axis_items))
. Observe que o nome do conjunto de dados vem primeiro, seguido pelo símbolo $
, e então especificamos os dados do eixo x que precisam ser revertidos.
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)
Use scale_x_discrete
para exibir o subconjunto de itens no eixo x
em R
Outro recurso útil da função scale_x_discrete
é eliminar alguns itens do eixo x e desenhar apenas alguns deles. Neste caso, utilizamos o conjunto de dados PlantGrowth
onde três categorias de grupos são listadas. Assim, podemos produzir o boxplot apenas com os grupos trt2
e trt1
, conforme mostrado no seguinte trecho 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)
Use scale_x_discrete
para renomear os rótulos dos itens no eixo x
em R
A função scale_x_discrete
também pode ser usada para renomear rótulos de itens ao longo do eixo x. Novos valores de rótulo podem ser fornecidos com o vetor atribuído ao parâmetro rótulos
na função escala_x_discreta
.
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)
Use scale_x_discrete
para modificar o nome do eixo x
em R
Observe que cada método anterior pode ser combinado para gerar a estrutura de gráfico desejada. Por exemplo, o código de exemplo a seguir desenha p4
para mostrar apenas o subconjunto de itens e renomear esses rótulos com os valores fornecidos. Além disso, utilizamos scale_x_discrete
para modificar o nome ao longo do eixo x usando o 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)
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