You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在R vistime绘制的时间线中添加代表2021年的竖线

vistime添加年份竖线不显示的解决方法

核心原因

你之前操作未生效的主要问题是:

  • 使用geom_vline时,xintercept参数没有转换为日期格式,和gg_vistime的x轴数据类型不匹配
  • 若使用plotly版本的vistime,需将日期转为数值类型,且明确指定竖线的y轴起止范围

静态ggplot版解决代码

library(vistime)
library(ggplot2)

Wand <- read.csv(text="event,group,start,end,color,fontcolor
Mature,Legend,2004-01-01,2009-12-31,#37782C,white
Seedlings,Legend,2010-01-01,2015-12-31,#9FD983,black
Absent,Legend,2016-01-01,2021-12-31,#FEFED3,black
Unknown,Legend,2022-01-01,2027-12-31,#DCDCDC,black
Burn,Legend,2028-01-01,2033-12-31,#000000,white
Extirpated :),Legend,2034-01-01,2039-12-31,#024064,white
,Caravan Park,2004-01-01,2008-12-31,#37782C,black
,Caravan Park,2009-01-01,2010-12-31,#DCDCDC,black
,Caravan Park,2011-01-01,2011-12-31,#37782C,black
,Caravan Park,2012-01-01,2013-12-31,#DCDCDC,black
,Caravan Park,2014-01-01,2014-12-31,#9FD983,black
,Caravan Park,2015-01-01,2018-12-31,#DCDCDC,black
,Caravan Park,2019-01-01,2020-12-31,#9FD983,black
Annual Surveillance,Caravan Park,2021-01-01,2026-12-31,#3CB3C0,black
,Caravan Park,2027-01-01,2027-12-31,#024064,black
,Gravel Pit,2004-01-01,2008-12-31,#37782C,black
,Gravel Pit,2009-01-01,2009-12-31,#DCDCDC,black
,Gravel Pit,2010-01-01,2010-12-31,#37782C,black
,Gravel Pit,2011-01-01,2018-12-31,#DCDCDC,black
,Gravel Pit,2019-01-01,2020-12-31,#37782C,black
Annual Surveillance,Gravel Pit,2021-01-01,2035-12-31,#3CB3C0,black
,Gravel Pit,2036-01-01,2036-12-31,#024064,black")

# 保存基础绘图结果
p <- gg_vistime(Wand,show_labels = TRUE,background_lines = NULL,optimize_y = TRUE, title = "Town", linewidth=20)
# 叠加2021年竖线,可自定义颜色、粗细、线型
p <- p + geom_vline(xintercept = as.Date("2021-01-01"), color = "red", linewidth = 1.5, linetype = "dashed")
# 输出绘图
print(p)

交互plotly版解决代码

如果你需要生成可交互的时间线图,使用如下代码添加竖线:

library(vistime)
library(plotly)

Wand <- read.csv(text="event,group,start,end,color,fontcolor
Mature,Legend,2004-01-01,2009-12-31,#37782C,white
Seedlings,Legend,2010-01-01,2015-12-31,#9FD983,black
Absent,Legend,2016-01-01,2021-12-31,#FEFED3,black
Unknown,Legend,2022-01-01,2027-12-31,#DCDCDC,black
Burn,Legend,2028-01-01,2033-12-31,#000000,white
Extirpated :),Legend,2034-01-01,2039-12-31,#024064,white
,Caravan Park,2004-01-01,2008-12-31,#37782C,black
,Caravan Park,2009-01-01,2010-12-31,#DCDCDC,black
,Caravan Park,2011-01-01,2011-12-31,#37782C,black
,Caravan Park,2012-01-01,2013-12-31,#DCDCDC,black
,Caravan Park,2014-01-01,2014-12-31,#9FD983,black
,Caravan Park,2015-01-01,2018-12-31,#DCDCDC,black
,Caravan Park,2019-01-01,2020-12-31,#9FD983,black
Annual Surveillance,Caravan Park,2021-01-01,2026-12-31,#3CB3C0,black
,Caravan Park,2027-01-01,2027-12-31,#024064,black
,Gravel Pit,2004-01-01,2008-12-31,#37782C,black
,Gravel Pit,2009-01-01,2009-12-31,#DCDCDC,black
,Gravel Pit,2010-01-01,2010-12-31,#37782C,black
,Gravel Pit,2011-01-01,2018-12-31,#DCDCDC,black
,Gravel Pit,2019-01-01,2020-12-31,#37782C,black
Annual Surveillance,Gravel Pit,2021-01-01,2035-12-31,#3CB3C0,black
,Gravel Pit,2036-01-01,2036-12-31,#024064,black")

# 生成基础交互图
p_plotly <- vistime(Wand,show_labels = TRUE,background_lines = NULL,optimize_y = TRUE, title = "Town", linewidth=20)
# 叠加2021年竖线
p_plotly <- p_plotly %>% add_segments(
  x = as.numeric(as.Date("2021-01-01")), 
  xend = as.numeric(as.Date("2021-01-01")),
  y = 0, yend = 3,
  line = list(color = "red", width = 2, dash = "dash")
)
# 输出交互图
p_plotly

内容的提问来源于stack exchange,提问作者user16812309

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.06 03:48:04