R timevis中的子组

时间:2017-07-21 10:29:47

标签: r htmlwidgets

在优秀的R timevis软件包中使用分组功能已有详细记录,并在timevis :: timevis()的帮助页面中提供了示例。

文档还说可以定义子组,

“将每个子组中的所有项目组合在一起,并将它们放在相同的高度,而不是将它们叠加在一起。”

我无法理解如何使用此功能。例如,在下面的示例中,我希望“事件1”和“事件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

如何正确使用子组功能?

1 个答案:

答案 0 :(得分:3)

我自己完成了子组和子组命令功能,并希望分享一些技巧。下面的代码应该实现将事件叠加在彼此之上,而不是堆叠它们。请注意在选项列表()中添加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))

不确定这是否正是您尝试实现的目标,而只是回应。希望你能取得一些进展!