R 中的 scale_x_discrete 函数

Jinku Hu 2023年1月30日 2021年7月16日
  1. 使用 scale_x_discrete 反转 R 图中 x 轴上的元素顺序
  2. 在 R 中使用 scale_x_discretex 轴上显示元素的子集
  3. 使用 scale_x_discrete 重命名 R 中 x 轴上的元素标签
  4. 使用 scale_x_discrete 修改 R 中的 x 轴名称
R 中的 scale_x_discrete 函数

本文将介绍 R 中的 scale_x_discrete 函数。

使用 scale_x_discrete 反转 R 图中 x 轴上的元素顺序

scale_x_discrete 用于设置离散 x 轴比例美学的值。在本文中,我们使用 ggplotgeom_boxplot 函数构建多个箱线图来演示 scale_x_discrete 中不同参数的效果。通常情况下,轴上元素的顺序需要颠倒,实现这一点最简单的方法是将 scale_x_discrete 参数的 limits 参数设置为 rev(levels(dataset_name$X_axis_items))。请注意,数据集名称首先出现,然后是 $ 符号,然后我们指定需要反转的 x 轴数据。

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

在 R 中使用 scale_x_discretex 轴上显示元素的子集

scale_x_discrete 函数的另一个有用功能是从 x 轴消除一些元素并仅绘制其中的少数元素。在这种情况下,我们使用 PlantGrowth 数据集,其中列出了三类组。因此,我们可以输出只有 trt2trt1 组的箱线图,如下面的代码片段所示。

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)

r 2 中的 scale_x_discrete

使用 scale_x_discrete 重命名 R 中 x 轴上的元素标签

scale_x_discrete 函数还可用于沿 x 轴重命名元素标签。新标签值可以与分配给 scale_x_discrete 函数中的 labels 参数的向量一起提供。

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)

r 3 中的 scale_x_discrete

使用 scale_x_discrete 修改 R 中的 x 轴名称

请注意,前面的每个方法都可以组合以输出所需的图形结构。例如,以下示例代码绘制 p4 以仅显示元素的子集,并使用提供的值重命名这些标签。此外,我们利用 scale_x_discrete 使用 name 参数沿 x 轴修改名称。

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)

r 4 中的 scale_x_discrete

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

相关文章 - R Plot