首页 > 解决方案 > 有没有一种有效的方法在 dc.js 中显示带有日期范围数据的时间表?

问题描述

我正在尝试创建一个时间表来显示使用 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"}]

我见过的所有例子都有离散的事件时间——有没有更好的方法来显示日期范围,或者操纵组/维度来提供计数/时间?

标签: dc.jsdata-manipulationdate-range

解决方案


我假设您想通过计算间隔与该间隔相交的占用次数来汇总每个时间间隔。

您没有看到太多示例的原因是它需要一种称为区间树的专用数据结构才能有效地完成它。

前段时间,我使用区间树创建了一个示例。它使用 Mikola Lysenko 的区间树库

为了说明这种过滤方式的不同之处,该图表将自行过滤,即当您刷过它时,它自己的条形会发生变化。此行为与大多数其他 dc.js/crossfilter 图表不同- 请注意当您画笔时还有多少超出范围的其他条形图,因为有些行的时间间隔与画笔和该条形图的间隔相交。

如果您想要正常的“不要过滤自己”行为,您可以更改

      projectsPerMonthTree = ndx.groupAll().reduce(

      projectsPerMonthTree = intervalDimension.groupAll().reduce(

推荐阅读