当文本具有不同字符数时右对齐 y 轴文本

Right align y-axis text when text has different number of characters

我想绘制一个没有 y 轴刻度的绘图,并将 y 轴文本放置在尽可能靠近绘图的位置。

因此我在 theme() 中使用 axis.text.y = element_text(hjust = 2),但请注意,因为标签范围从 040,所以 0 值最终在情节而其他标签没有。

一个可重现的小例子:

ggplot(mtcars, aes(x=wt, y=mpg)) + geom_point() +
  scale_y_continuous(limits=c(0,40)) +
  theme(axis.ticks = element_blank(),
        axis.text.y = element_text(hjust = 2))

是否可以将 0 与所有其他值的位置对齐?

试试这个:

ggplot(mtcars, aes(x=wt, y=mpg)) + geom_point() +
  scale_y_continuous(limits=c(0,40)) +
  theme(axis.ticks = element_blank(),
        axis.text.y = element_text(hjust = 1, margin = margin(0,-3,0,0))
  )

修改margin以获得想要的结果