r - 在 R 中使用 timevis 创建嵌套子组
问题描述
我想使用's包创建一个像这样的时间线。我知道如何建立一个小组,就像他们在演示中所做的那样:R
timevis
library(timevis)
dataGroups <- data.frame(
id = 1:11,
content = c(
"Open",
"Open",
"Open",
"Open",
"Half price entry",
"Staff meeting",
"Open",
"Adults only",
"Open",
"Hot tub closes",
"Siesta"
),
start = c(
"2016-05-01 07:30:00",
"2016-05-01 14:00:00",
"2016-05-01 06:00:00",
"2016-05-01 14:00:00",
"2016-05-01 08:00:00",
"2016-05-01 08:00:00",
"2016-05-01 08:30:00",
"2016-05-01 14:00:00",
"2016-05-01 16:00:00",
"2016-05-01 19:30:00",
"2016-05-01 12:00:00"
),
end = c(
"2016-05-01 12:00:00",
"2016-05-01 20:00:00",
"2016-05-01 12:00:00",
"2016-05-01 22:00:00",
"2016-05-01 10:00:00",
"2016-05-01 08:30:00",
"2016-05-01 12:00:00",
"2016-05-01 16:00:00",
"2016-05-01 20:00:00",
NA,
"2016-05-01 14:00:00"
),
group = c(rep("lib", 2), rep("gym", 3), rep("pool", 5), NA),
subgroup = c("A", "A", "B", "C", "C", "D", "D", "E", "E", "E", NA),
type = c(rep("range", 9), "point", "background")
)
groups <- data.frame(id = c("lib", "gym", "pool"),
content = c("Library", "Gym", "Pool"))
timevis(
data = dataGroups,
groups = groups,
options = list(editable = TRUE, stack = FALSE)
)
我不知道如何在最终时间线中包含子组。我相信有可能使用setGroups
或包括一些使用htmlwidgets::JS()
. 我正在使用第二个选项尝试文档中的示例,但它似乎不起作用:
timevis(
data.frame(
id = 1,
content = "double click anywhere<br>in the timeline<br>to add an item",
start = "2016-01-01"
),
options = list(
editable = TRUE,
onAdd = htmlwidgets::JS(
'function(item, callback) {
item.content = "Hello!<br/>" + item.content;
timevis 19
callback(item);
}'
)
)
)
任何包括子组的时间线示例都将不胜感激。
如果无法使用此功能,R
是否有替代方案可用?
解决方案
我想您可能将subGroups与nestedGroups混淆了。子组用于显示同一类别中不同级别的事件。如果您将subgroup
属性更改为此:
subgroup = c("A", "A", "B", "C", "B", "D", "D", "F", "E", "F", NA)
您将能够看到(在下面的时间线中):
- 图书馆的一个子组 (
A
) (您注意到事件处于同一水平级别) Gym的两个子组 (
B
&C
) (您注意到事件分布到两个水平级别)Pool的三个子组 (
D
,E
, &F
) (您注意到事件分布到三个水平级别)
您提供的链接包含使用 Javascript 版本生成的时间线,该版本timvis
支持在时间线中包含嵌套组。如果您打开该页面的源代码,您将能够看到它是如何实现的。
希望这可以帮助。
推荐阅读
- wordpress - Worpress 上的 icomoon.ttf 显示 404 和较长的响应时间减慢了我的网站
- php - Concrete5 MySQL 查询问题
- vue.js - 有没有办法传递 v-chip-group v-model id 而不是项目索引?
- machine-learning - 使用文本和数字列构建机器学习模型
- node.js - 如何在我的计算机不开机的情况下“永远”托管我的 NodeJS 应用程序?
- fetch - 我想通过 fetch 函数获取数据
- c# - 如何解决 C# 中的“无法为空内容创建 CMS 签名”错误?
- c++ - 在我自己的开源项目中使用修改后的 C++ 仅标头库的常用方法是什么?
- html - 文本与 JSPDF 2.0.0 重叠并自定义字体
- flutter - 颤动中的 Twitch 视频