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

如何使用R语言timevis包修改时间线各分组背景色并移除网格线

实现方案

你需要修改groups数据结构并补充对应的CSS样式即可实现分组背景着色+隐藏网格线,核心修改点如下:

  • 给groups数据框新增className字段,为每个分组绑定专属样式类
  • 补充针对时间线分组行的CSS规则,同时添加隐藏网格线的样式

完整修改后代码如下:

library(shiny)
library(timevis)
library(lubridate)

timevisData <- data.frame (
  id          = 1:3,
  content     = c("Klep", "Reinigen", "Zeeppomp"),
  group       = c("Klep", "Reinigen", "Zeeppomp"),
  start       = c("2020-12-10", "2020-12-16", "2020-12-30"),
  end         = NA,
  className   = c("green_style", "green_style", "red_style")
)

# 给groups新增className列,绑定对应背景样式
groups <- data.frame(
  id = c("Klep", "Reinigen", "Zeeppomp"), 
  content = c("Klep", "Reinigen", "Zeeppomp"),
  className = c("green_group", "green_group", "red_group")
)

ui <- fluidPage(
  title = "Testing with className",
  h3("Overzicht uitgevoerde en voorgestelde onderhoudsbeurten"),
  tags$head(
    tags$style(HTML("
      /* 原有时间点样式 */
      .red_style   { border-color: red; color: white; background-color: red; }
      .green_style { border-color: green; color: white; background-color: green; }
      /* 新增分组背景样式 */
      .vis-group.red_group { background-color: #ffcccc; }
      .vis-group.green_group { background-color: #ccffcc; }
      /* 隐藏网格线 */
      .vis-grid.vis-vertical, .vis-grid.vis-horizontal { display: none; }
    "))
  ),
  timevisOutput("timeline_aalst")
)

server <- function (input, output, session) {
  output$timeline_aalst <- renderTimevis ({
    timevis (data = timevisData, groups = groups, showZoom = TRUE, options = list(editable = TRUE)) %>%
      setWindow(Sys.Date() %m-% months(1), Sys.Date() %m+% months(1))
  })
}

shinyApp(ui = ui, server = server)

样式说明

  • 分组背景色默认用了浅红/浅绿,你可以自行替换十六进制色值调整深浅
  • 如果需要保留水平/垂直其中一种网格线,删掉对应.vis-grid的规则即可

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 03:51:04