如何使用ggplot2在图表指定位置添加带标签的垂直直线
你使用autoplot生成的是标准ggplot对象,直接叠加geom_vline()添加垂直直线、geom_text()添加对应标签即可,你的年月是200806这类数值格式,x轴刻度对应数值,直接按需求填写位置参数即可,以下是可运行的示例:
1. 多序列同图(facets=FALSE)场景
# 以绘制News所有序列同图为例 library(ggplot2) p <- autoplot(News, facets = FALSE) + # 添加垂直直线,xintercept替换为你需要的目标年月数值,可同时指定多个 geom_vline(xintercept = c(201212, 202001), color = "red", linetype = "dashed", linewidth = 0.8) + # 添加对应标签,x与上述年月对应,y根据你的数据取值范围调整位置,避免遮挡内容 geom_text(aes(x = 201212, y = 2.5, label = "XX政策发布"), color = "red", hjust = 1.1) + geom_text(aes(x = 202001, y = 2.5, label = "疫情爆发节点"), color = "red", hjust = 1.1) print(p)
2. 分面展示(默认autoplot无facets参数)场景
如果需要所有分面都显示参考线和标签,直接叠加上述图层即可;如果需要指定对应分面显示,调整标签数据的分组匹配即可:
p_facet <- autoplot(News) + geom_vline(xintercept = c(201212, 202001), color = "red", linetype = "dashed") + geom_text( data = data.frame(x = 201212, y = 2.5, label = "XX政策发布", .series = unique(News$.series)), aes(x = x, y = y, label = label), color = "red", hjust = 1.1 ) print(p_facet)
注意事项
- 如果你后续把年月转为
Date类型,xintercept需要同步改为as.Date("2012-12-01")这类日期格式 - 可自行调整
linetype、color、linewidth参数修改竖线样式,调整size、angle参数修改标签样式
内容的提问来源于stack exchange,提问作者student21
相关产品推荐
相关产品推荐

