R timevis 中的子组

Subgroups in R timevis

使用出色的 R timevis 包中的分组功能有详细的文档记录,timevis::timevis() 的帮助页面中提供了示例。

文档还说可以定义子组,

"Groups all items within a group per subgroup, and positions them on the same height instead of stacking them on top of each other."

我无法理解如何使用此功能。例如,在下面的示例中,我希望 "event 1" 和 "event 2" 被定义为它们自己的子组,因此它们将位于相同的高度。然而,事实并非如此。

timedata <- data.frame(
  id = 1:6, 
  start = Sys.Date() + c(1, - 10, 4, 20, -10, 10),
  end = c(rep(as.Date(NA), 4), Sys.Date(), Sys.Date() + 20),
  group = c(1,1,1,2,2,2),
  content = c("event 1", "event 2", "event 2", "event 1", "range 1",     "range 1"),
  subgroup = c("1.1", "1.2", "1.2", "2.1", "2.2", "2.2")
)

groups <- data.frame(id = c(1,2), content = c("g1", "g2"))
timevis::timevis(data =timedata, groups = groups)

The result of the example code. The definition of subgroups is unsuccesful

如何正确使用分组功能?

我正在自己研究 subgroup 和 subgroupOrder 函数,想分享一些技巧。下面的代码应该实现将事件叠加在一起,而不是将它们堆叠起来。注意在选项列表()中添加stack = FALSE

另一个要看的地方是 JS 文档:http://visjs.org/docs/timeline/

  timedata <- data.frame(
      id = 1:6, 
      start = Sys.Date() + c(1, - 10, 4, 20, -10, 10),
      end = c(rep(as.Date(NA), 4), Sys.Date(), Sys.Date() + 20),
      group = c(1,1,1,2,2,2),
      content = c("event 1", "event 2", "event 2", "event 1", "range 1",     "range 1"),
      subgroup = c("1.1", "1.2", "1.2", "2.1", "2.2", "2.2")
    )
    
    groups <- data.frame(id = c(1,2), content = c("g1", "g2"))
    timevis::timevis(data =timedata, groups = groups, options = list(stack = FALSE))

产生这个输出,

不确定这是否正是您要实现的目标,但这只是一个回应。希望你在其他方面取得了一些进步!