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 方法;使用 las 的 axis() 無法提供任意角度。
在 ggplot2 中旋轉刻度標籤
使用以下語法,我們可以旋轉 ggplot2 中的刻度標籤。使用 axis.text.x 設定 x 軸標籤,使用 axis.text.y 設定 y 軸標籤,並透過 element_text() 設定 angle、hjust 和 vjust。
plot + theme(axis.text.x = element_text(angle = 45, vjust = 1, hjust = 1))
標籤將旋轉 45 度角,vjust 和 hjust 將控制標籤文字的垂直和水平對齊方式。讓我們建立一個繪圖,我們可以在 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 中將刻度標籤旋轉 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 圖形。
輸出:
在 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 圖形。
輸出:
若要旋轉 y 軸刻度標籤,請將主題目標改為 axis.text.y。若要改為旋轉座標軸標題,請使用 axis.title.x 或 axis.title.y,例如 theme(axis.title.x = element_text(angle = 15))。這會作用於標題,而不是刻度標籤文字。
選擇角度和對齊方式
當類別名稱較長或發生重疊時,先使用 90 度。標籤可以斜向放置時嘗試 45 度;如果文字看起來離座標軸太遠,再調整 hjust 和 vjust。合適的值取決於圖形尺寸、字型和圖形裝置,因此請在預期尺寸下檢查最終輸出。旋轉會改變文字方向,但不會自動為狹窄的繪圖區域增加空間。Base R 範例僅使用標準 graphics 套件;ggplot2 範例需要 ggplot2 套件和用於繪製圖形的裝置。如果套件無法使用,請按照專案環境政策安裝,而不要將範例改用其他繪圖系統。