Я хочу создать временную шкалу типа Вот этот, используя пакет Rtimevis.
Я знаю, как создать группу, как в демо:
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, есть ли альтернатива?





Наверное, вы путаете подгруппы с вложенные группы. Подгруппы используются для отображения событий на разных уровнях в рамках одной и той же категории. Если вы измените свой атрибут subgroup на это:
subgroup = c("A", "A", "B", "C", "B", "D", "D", "F", "E", "F", NA)
Вы сможете увидеть (на временной шкале ниже):
A) для Библиотека (вы заметили, что события находятся на одном горизонтальном уровне)Две подгруппы (B и C) для Спортзал (вы заметили, что события распределены на два горизонтальных уровня)
Три подгруппы (D, E и F) для Бассейн (вы заметили, что события распределены на три горизонтальных уровня)
Приведенная вами ссылка содержит временную шкалу, созданную с использованием Javascript-версии timvis, которая поддерживает наличие на временной шкале вложенные группы. Если вы откроете источник этой страницы, вы сможете увидеть, как это реализовано.
Надеюсь это поможет.
Благодарю за ваш ответ. Я понял разницу между вложенными группами и подгруппами. У меня вопрос, можно ли их реализовать в R. Я включил последний фрагмент кода, потому что кажется, что некоторые функции могут быть добавлены с помощью options, и мне интересно, являются ли вложенные группы одной из этих функций.
Я полагаю, это просто для того, чтобы добавить EventListeners к нанесенной на график временной шкале. Возможно, вам не удастся что-то там нарисовать.
Вы можете посмотреть доступные варианты здесь: visjs.org/docs/timeline/#Configuration_Options
(1) Я не понимаю, хотите вы
subgroupилиnestedGroups. (2) строкаtimevis 19в вашем фрагменте javascriptonAdd()нарушает код.