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

如何在单个Shiny应用中使用timevis生成多个带id标识的时间线

实现代码

你可以借助timevis的groups分组参数实现多条独立时间线的分区展示,完整可运行代码如下:

library(timevis)
library(shiny)

# 原始数据
df <- data.frame(id =c(1,2),
                 time1 =c('2019-01-08 20:00:00','2019-01-08 20:30:00'),
                 time2 =c('2019-01-08 21:00:00','2019-01-08 21:10:00'))

# 构造timevis所需的事件数据集
events <- rbind(
  data.frame(start = df$time1, group = df$id, content = ""),
  data.frame(start = df$time2, group = df$id, content = "")
)

# 构造分组配置,用于显示每条时间线的id标识
groups <- data.frame(
  id = unique(df$id),
  content = paste0("id = ", unique(df$id))
)

# Shiny应用
ui <- fluidPage(
  timevisOutput("timeline")
)
server <- function(input, output) {
  output$timeline <- renderTimevis(
    timevis(data = events, groups = groups)
  )
}
shinyApp(ui, server)

关键说明

  • groups参数是实现多条时间线拆分的核心,每个id对应一个分组,会单独占一行时间轴
  • groups数据框的content字段控制分组标识的显示内容,直接设置为id = x即可满足区分需求
  • 如果需要调整时间点上的显示内容,修改events数据框的content字段即可;如果需要调整分组标识的样式、位置,可以通过groups的style字段自定义CSS样式。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 18:48:00