Создать вложенную подгруппу с timevis в R - PullRequest
0 голосов
/ 16 ноября 2018

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

1 Ответ

0 голосов
/ 22 ноября 2018

Полагаю, возможно, вы путаете подгруппы с вложенными группами . Подгруппы используются для отображения событий на разных уровнях в одной и той же категории. Если вы измените свой атрибут subgroup на это:

subgroup = c("A", "A", "B", "C", "B", "D", "D", "F", "E", "F", NA)

Вы сможете увидеть (на временной шкале ниже):

  • Одна подгруппа (A) для Библиотека (вы заметили, что события находятся на одном горизонтальном уровне)
  • Две подгруппы (B & C) для Тренажерный зал (вы заметили, что события распределены по двум горизонтальным уровням)

  • Три подгруппы (D, E, & F) для Пул (вы заметили, что события распределены по трем горизонтальным уровням)

TimeVis with Subgroups

Предоставленная вами ссылка содержит временную шкалу, созданную с использованием версии Javascript timvis, которая поддерживает наличие nestedGroups на временной шкале. Если вы откроете источник этой страницы, вы сможете увидеть, как это реализовано.

Надеюсь, это поможет.

...