how to correct x axis text placement when the angle is between 45 and 90?

KJB*_*KJB 5 r ggplot2

I'm struggling to understand the interactions for ggplot's axis.text.x: angle, hjust and vjust. Everything I've read works when angle is between 0 and 45, but not for angles > 45 and < 90.

Below is a minimal reproducible example:

library(ggplot2)   
p <- ggplot(mtcars, aes(1000 * mpg, hp)) +
      geom_point()
Run Code Online (Sandbox Code Playgroud)

The first plot with angle = 90 looks as expected,

p + theme(axis.text.x = element_text(angle = 90, hjust = 1, vjust = 0.5))
Run Code Online (Sandbox Code Playgroud)

在此处输入图片说明

However, when decreasing the angle by only 1 degree compared with the plot above (from angle = 90 to angle = 89), the axis labels are shifted down.

p + theme(axis.text.x = element_text(angle = 89, hjust = 1, vjust = 0.5))
Run Code Online (Sandbox Code Playgroud)

在此处输入图片说明

Any insight appreciated.

iou*_*ich 0

尝试指定两者vjust = 0.5hjust = 0.5然后就可以避免问题。

ggplot(mtcars, aes(x = 1000*mpg, y = hp)) +
geom_point() +
theme(
axis.text.x = element_text(angle = 75, vjust = .5, hjust = .5)
)
Run Code Online (Sandbox Code Playgroud)

结果