# R 中的 scale_y_continuous 函数

Jinku Hu 2023年1月30日

## 使用 `scale_y_continuous` 将 Y 轴标签打印为 R 中的百分比

`scale_y_continuous` 用于设置连续 y 轴比例美学的值。该函数是 `ggplot2` 包的一部分，它主要与 `ggplot` 对象一起使用来修改要绘制的图形的不同参数。此示例演示如何使用 `scale_y_continuous` 将 Y 轴标签打印为百分比值。请注意，堆叠条形图是使用 `geom_col(position = "fill")` 函数调用创建的，百分比是使用 `scales::percent` 函数作为 `labels` 参数值打印的。由于我们使用 `library` 调用包含了 `scales` 包，因此可以在此脚本的范围内使用 `percent` 表示法引用它。

``````library(ggplot2)
library(gridExtra)
library(scales)

p1 <- ggplot(OrchardSprays, aes(x = rowpos, y = decrease, fill = treatment)) +
geom_col(position = "fill")

p2 <- ggplot(OrchardSprays, aes(x = rowpos, y = decrease, fill = treatment)) +
geom_col(position = "fill") +
scale_y_continuous(labels = percent)

grid.arrange(p1, p2, ncol = 2, nrow =2)
``````

## 使用 `scale_y_continuous` 设置 R 中 Y 轴的缩放比例

``````library(ggplot2)
library(gridExtra)
library(scales)

p1 <- ggplot(OrchardSprays, aes(x = rowpos, y = decrease, fill = treatment)) +
geom_col(position = "fill")

p2 <- ggplot(OrchardSprays, aes(x = rowpos, y = decrease, fill = treatment)) +
geom_col(position = "fill") +
scale_y_continuous(labels = percent)

p3 <- ggplot(OrchardSprays, aes(x = treatment, y = decrease)) +
geom_point(colour = "blue")

p4 <- ggplot(OrchardSprays, aes(x = treatment, y = decrease)) +
geom_point(colour = "brown") +
scale_y_continuous(breaks = seq(0, 150, 10))

grid.arrange(p1, p2, p3, p4, ncol = 2, nrow =2)
``````

## 使用 `scale_y_continuous` 删除 R 中 Y 轴上的标签

``````library(ggplot2)
library(gridExtra)

p3 <- ggplot(OrchardSprays, aes(x = treatment, y = decrease)) +
geom_boxplot(fill = "cyan")

p4 <- ggplot(OrchardSprays, aes(x = treatment, y = decrease)) +
geom_boxplot(fill = "pink") +
scale_y_continuous(breaks = NULL)

grid.arrange(p3, p4, ncol = 2, nrow =2)
``````

## 在 R 中使用 `scale_y_continuous` 使用自定义值修改 Y 轴标签

``````library(ggplot2)
library(gridExtra)

p3 <- ggplot(OrchardSprays, aes(x = treatment, y = decrease)) +
geom_boxplot(fill = "cyan")

p4 <- ggplot(OrchardSprays, aes(x = treatment, y = decrease)) +
geom_boxplot(fill = "pink") +
scale_y_continuous(
breaks = c(50, 60, 70, 80, 90, 100, 110),
labels = c("32", "3C", "46", "50", "5A", "64", "6E"),
name = "Decrease\n(hex)") +
scale_x_discrete(name = "Treatment")

grid.arrange(p3, p4, ncol = 2, nrow =2)
``````

DelftStack.com 创始人。Jinku 在机器人和汽车行业工作了8多年。他在自动测试、远程测试及从耐久性测试中创建报告时磨练了自己的编程技能。他拥有电气/电子工程背景，但他也扩展了自己的兴趣到嵌入式电子、嵌入式编程以及前端和后端编程。