# 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多年。他在自動測試、遠端測試及從耐久性測試中創建報告時磨練了自己的程式設計技能。他擁有電氣/ 電子工程背景，但他也擴展了自己的興趣到嵌入式電子、嵌入式程式設計以及前端和後端程式設計。