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

时间:2017-08-22 03:00:43

标签: 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)

情节如下: enter image description here

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

enter image description here

我认为我应该设置vjust = 0.5,但这也会移动轴文本。我还尝试了vjusthjust的重复组合,仍然无法获得所需的输出。有没有办法让axis.text对齐,如第二个图(使用libreoffice draw手动创建)和ggplot2一样?

1 个答案:

答案 0 :(得分:-1)

此图使用width的默认heightRstudio导出。

picture exported with default values

您也可以使用包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()

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