我正在使用dc.js构建一个复合线路图,在这里我可以可视化用户在一行中选择的一段时间内的分析数据,并在另一行上将其与之前相应时间段的数据对峙。
例如,如果选择的范围是本月,则对峙线应显示我上个月的数据;如果是今天,它应该显示昨天的数据。类似于Google Analytics(分析)信息中心的综合图表。 因此,在图像中,蓝线表示从22/8到28/8的数据,浅蓝线表示从21/8到15/8的过去数据: https://ibb.co/c7WCF9
我让它工作了,但是我直接修改了一个组的值,与“ Crossfilter-Gotchas”之一背道而驰,因此这些过滤器现在的行为像Gotchas预测的那样奇怪。实际上,要使用过去的值创建组,我只是将实际值向前移动,如下所示:
groupBySessionsConfront.all().forEach(function (item, index) {
if (index - diffDays > 0) {
item['value'] = parseInt(data[index-diffDays].sessions);
} else {
item['value'] = 0;
}
});
这里有个小提琴:https://jsfiddle.net/0st1wbLe/8/。 通过打开控制台,您可以在过滤器后看到对抗组的数据:filteRange内的键正常且一致,但其他键是错误的,有时在数据集为正时为负。
问题是:有一种获取这种对位图的方法,而不必直接修改组,这样又不会丢失过滤器功能?