如何在单个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
相关产品推荐
相关产品推荐

