首页 > 解决方案 > geom_vline + geom_text:标签垂直旋转时对齐标签

问题描述

我正在绘制ggplot并在 x 截距上放置一些垂直标签,如下所示:

d=data.frame(date=as.Date(c("1971-09-01", "1991-12-01", "1994-12-01", "2000-01-01", "2002-08-01")),
             event=c(2.6, 14.1, 30.3, 60.5, 91.3))
ggplot() +
  scale_x_date(limits=as.Date(c("1970-1-1", "2010-12-31"))) +
  scale_y_continuous(name="", breaks=NULL, limits=c(0,1)) +
  geom_vline(data=d, mapping=aes(xintercept=date), color="blue") +
  geom_text(data=d, mapping=aes(x=date, y=0, label=event), 
            size=4, angle=270, vjust=-0.4, hjust=7)

我的图表是这样的:

在此处输入图像描述

如何将2.6第一个 x 截距上的数字与其他数字对齐?

标签: rggplot2

解决方案


也许将y设置在中间(0.5 而不是 0)并且不要使用hjust

ggplot(d, aes(x = date, y = 0.5, label = event)) +
  geom_text(size = 4, angle = 270, vjust = -0.7) +
  geom_vline(mapping = aes(xintercept = date), color = "blue") +
  scale_x_date(limits = as.Date(c("1970-1-1", "2010-12-31"))) +
  scale_y_continuous(name = "", breaks = NULL, limits = c(0, 1))

在此处输入图像描述


推荐阅读