HOWTO · R

在 R 中旋轉軸標籤

本教程演示瞭如何在 R 的圖中旋轉軸標籤。

本頁內容

Base R 和 ggplot2 在 R 中旋轉軸標籤的方式不同。本教程演示如何在 R 中旋轉軸標籤。

在 Base R 中旋轉刻度標籤

在 base R 中,我們可以將軸標籤旋轉為水平方向、縱向,或使其垂直於座標軸。讓我們首先展示要旋轉標籤的圖,然後示範每種方法。
las 參數控制刻度標籤的方向,共有四個值:

  • las = 0:標籤與座標軸平行(預設值)。
  • las = 1:標籤為水平方向。
  • las = 2:標籤垂直於座標軸。
  • las = 3:標籤為垂直方向。

示例程式碼:

# Create example data
set.seed(99999)

xLabel <- rnorm(1000)
yLabel <- rnorm(1000)

# The Default Plot
plot(xLabel, yLabel)

輸出:

預設繪圖

水平刻度標籤:

我們可以通過在圖中傳遞 las=1 水平旋轉軸標籤。

示例程式碼:

# Create example Data
set.seed(99999)

xLabel <- rnorm(1000)
yLabel <- rnorm(1000)

# The Horizontal Axis Plot
plot(xLabel, yLabel, las=1)

上面的程式碼建立了一個帶有水平軸標籤的圖。

輸出:

水平圖

垂直刻度標籤:

我們可以通過在圖中傳遞 las=3 來垂直旋轉軸標籤。

示例程式碼:

# Create example Data
set.seed(99999)

xLabel <- rnorm(1000)
yLabel <- rnorm(1000)

# The Vertical Axis Plot
plot(xLabel, yLabel, las=3)

上面的程式碼建立了一個帶有垂直軸標籤的圖。

輸出:

垂直圖

垂直於軸的刻度標籤:

我們可以通過在圖中傳遞 las=2 來垂直於軸旋轉軸標籤。

示例程式碼:

# Create example Data
set.seed(99999)

xLabel <- rnorm(1000)
yLabel <- rnorm(1000)

# The Perpendicular Axis Plot
plot(xLabel, yLabel, las=2)

上面的程式碼建立了一個垂直於軸標籤的圖。

輸出:

垂直軸圖

las 值可以在 Base R 中的任何型別的繪圖中更改。這些值會影響圖中的刻度標籤,不會改變座標軸標題。若要設定或變更標題,請使用個別參數,例如 xlab = "Horizontal value"ylab = "Vertical value"

plot(xLabel, yLabel, las = 3,
     xlab = "Horizontal value", ylab = "Vertical value")

las 參數僅限於這四種有文件說明的方向。如果需要任意角度,請使用自訂文字繪製方法或下面的 ggplot2 方法;使用 lasaxis() 無法提供任意角度。

ggplot2 中旋轉刻度標籤

使用以下語法,我們可以旋轉 ggplot2 中的刻度標籤。使用 axis.text.x 設定 x 軸標籤,使用 axis.text.y 設定 y 軸標籤,並透過 element_text() 設定 anglehjustvjust

plot + theme(axis.text.x = element_text(angle = 45, vjust = 1, hjust = 1))

標籤將旋轉 45 度角,vjusthjust 將控制標籤文字的垂直和水平對齊方式。讓我們建立一個繪圖,我們可以在 ggplot2 中旋轉軸標籤。

示例程式碼:

# Create example Data
Delftstack <- data.frame(Designation=c('CEO', 'Project Manager', 'Senior Dev', 'Junior Dev', 'Intern'),
                         Id=c(101, 102, 103, 104, 105))

library(ggplot2)

ggplot(Delftstack, aes(x = Designation, y = Id)) +
  geom_col()

上面的程式碼將從給定的資料建立一個預設圖。

輸出:

預設 ggplot2

ggplot2 中將刻度標籤旋轉 90 度

我們可以在 ggplot2 中將值 90 賦予將軸標籤旋轉 90 度的角度。

示例程式碼:

# Create example Data
Delftstack <- data.frame(Designation=c('CEO', 'Project Manager', 'Senior Dev', 'Junior Dev', 'Intern'),
                         Id=c(101, 102, 103, 104, 105))

ggplot(Delftstack, aes(x = Designation, y = Id)) +
  geom_col() +
  theme(axis.text.x = element_text(angle = 90, vjust = 0.5, hjust = 1))

上面的程式碼會建立一個 x 軸刻度標籤旋轉 90 度的 ggplot2 圖形。

輸出:

90 度 Ggplot

ggplot2 中將刻度標籤旋轉 45 度

我們可以在 ggplot2 中將值 45 賦予將軸標籤旋轉 45 度的角度。

示例程式碼:

# Create example Data
Delftstack <- data.frame(Designation=c('CEO', 'Project Manager', 'Senior Dev', 'Junior Dev', 'Intern'),
                         Id=c(101, 102, 103, 104, 105))

ggplot(Delftstack, aes(x = Designation, y = Id)) +
  geom_col() +
  theme(axis.text.x = element_text(angle = 45, vjust = 1, hjust = 1))

上面的程式碼會建立一個 x 軸刻度標籤旋轉 45 度的 ggplot2 圖形。

輸出:

45 度 Ggplot

若要旋轉 y 軸刻度標籤,請將主題目標改為 axis.text.y。若要改為旋轉座標軸標題,請使用 axis.title.xaxis.title.y,例如 theme(axis.title.x = element_text(angle = 15))。這會作用於標題,而不是刻度標籤文字。

選擇角度和對齊方式

當類別名稱較長或發生重疊時,先使用 90 度。標籤可以斜向放置時嘗試 45 度;如果文字看起來離座標軸太遠,再調整 hjustvjust。合適的值取決於圖形尺寸、字型和圖形裝置,因此請在預期尺寸下檢查最終輸出。旋轉會改變文字方向,但不會自動為狹窄的繪圖區域增加空間。Base R 範例僅使用標準 graphics 套件;ggplot2 範例需要 ggplot2 套件和用於繪製圖形的裝置。如果套件無法使用,請按照專案環境政策安裝,而不要將範例改用其他繪圖系統。