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 包和用于渲染绘图的设备。如果某个包不可用,请按照项目环境政策安装,而不要将示例改用其他绘图系统。