如何在ggplot2中对齐旋转的多行x轴文本?

mt1*_*022 6 r ggplot2

这是我目前拥有的示例:

x <- head(mtcars)
x$rn <- rownames(x)
x$rn[5] <- 'Hornet\nSportabout'

library(ggplot2)

ggplot(x, aes(x = rn, y = mpg)) + geom_point() +
    theme(axis.text.x = element_text(angle = 45, vjust = 1, hjust = 1))
ggsave('test.png', width = 3, height = 3)
Run Code Online (Sandbox Code Playgroud)

情节是这样的: 在此处输入图片说明

正如你所看到的,'Hornet\nSportabout'离下一个太近了,我想把它向左移动一点。预期的 x 轴文本如下所示:

在此处输入图片说明

我认为我应该设置vjust = 0.5,但这也会将轴文本向下移动。我也试过的severial组合vjusthjust仍然无法得到所需的输出。有没有办法axis.text像第二个图(用 libreoffice draw 手动创建)所示与 ggplot2 对齐?

Dr.*_*rma 0

该图以默认值width从导出。heightRstudio

使用默认值导出的图片

您也可以使用该包执行相同的操作grDevices。代码将是这样的:

library(grDevices)
png("test1.png",width = 592, height = 379, units = "px")
ggplot(ggplot(x, aes(x = rn, y = mpg)) + geom_point() + theme(axis.text.x = element_text(angle = 45, vjust = 1, hjust = 1)) 
dev.off()
Run Code Online (Sandbox Code Playgroud)

test1.png现在可以看到当前工作目录中的文件。