R 中的 scale_x_discrete 函数
Jinku Hu
2023年1月30日
-
使用
scale_x_discrete
反转 R 图中x
轴上的元素顺序 -
在 R 中使用
scale_x_discrete
的x
轴上显示元素的子集 -
使用
scale_x_discrete
重命名 R 中x
轴上的元素标签 -
使用
scale_x_discrete
修改 R 中的x
轴名称
本文将介绍 R 中的 scale_x_discrete
函数。
使用 scale_x_discrete
反转 R 图中 x
轴上的元素顺序
scale_x_discrete
用于设置离散 x 轴比例美学的值。在本文中,我们使用 ggplot
和 geom_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)
在 R 中使用 scale_x_discrete
的 x
轴上显示元素的子集
scale_x_discrete
函数的另一个有用功能是从 x 轴消除一些元素并仅绘制其中的少数元素。在这种情况下,我们使用 PlantGrowth
数据集,其中列出了三类组。因此,我们可以输出只有 trt2
和 trt1
组的箱线图,如下面的代码片段所示。
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
重命名 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)
使用 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)
作者: Jinku Hu