利用优秀的 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
如何正确利用子组功能?
最佳答案
我自己正在处理 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))
产生这个输出,不确定这是否正是您想要实现的目标,而只是回应。希望你在其他方面取得了一些进展!
关于r - R timevis 中的子组,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/45235338/