Есть ли эффективный способ отображения графика времени в dc.js с данными диапазона дат? - PullRequest
0 голосов
/ 25 ноября 2018

Я пытаюсь создать временную диаграмму, чтобы показать количество комнат, занятых в различных сценариях, используя dc.js.Чтобы сократить передачу данных, мои данные о занятости в комнате представлены дискретным временем начала и окончания.

[{"room": "1", "start":"10/13/2018 08:10", "end":"10/18/2018 17:43"}, {"room":"2", "start":"10/15/2018 12:51", "end":"10/24/2018 19:17"}, {"room":"3", "start":"10/11/2018 23:09", "end":"11/01/2018 11:44"}]

Все примеры, которые я видел, имеют дискретное время события - есть ли лучший способ показать диапазоны дат или манипулироватьгруппа / измерение, чтобы обеспечить счет / время?

1 Ответ

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

Я предполагаю, что вы хотите агрегировать по каждому временному интервалу путем подсчета количества рабочих мест, чьи интервалы пересекаются с этим интервалом.

Причина, по которой вы не видели слишком много примеров, заключается в том, что для этого требуется специальная структура данныхя назвал дерево интервалов , чтобы сделать это эффективно.

Некоторое время назад я создал пример с использованием деревьев интервалов .Он использует библиотеку интервальных деревьев Миколы Лысенко.

Чтобы проиллюстрировать, насколько отличается этот вид фильтрации, этот график будет фильтровать сам, то есть его собственные столбцы будут меняться при наведении на него курсора.Это поведение отличается от большинства других диаграмм dc.js / crossfilter - обратите внимание, сколько других столбцов за пределами диапазона остается при чистке, потому что есть строки, временные интервалы которых пересекают как кисть, так и эту полосу.интервал.

Если вы хотите нормальное поведение «не фильтруйте себя», вы можете изменить

      projectsPerMonthTree = ndx.groupAll().reduce(

на

      projectsPerMonthTree = intervalDimension.groupAll().reduce(
...