dc.js 模拟点击图表并触发过滤器

dc.js simulate click on chart and trigger filter on

我想做的事情:

我有一个条形图,其中 x 轴代表时间。用鼠标 select 可以 select 一段时间,所有图表都会正确调整到 selection。

但是,有时很难从确切的日期转到确切的日期,我想添加一个日历,其中可以 select 这些日期。

理想情况下,select在日历上输入日期与select在条形图上用鼠标输入时间段具有相同的效果。

试过但不喜欢:

我试图创建第二个时间维度并在其上制作日历 select。但是,这会使 barChart 的最小值和最大值调整到 selection。barChart 不会覆盖时间维度的全部维度,而只会覆盖日历上的 selected 时间段。这是我想避免的。

如何在图表本身上精确模拟 select离子?

非常感谢。

编辑:

我试图理解评论中提出的建议。让我给你看一些代码。

我有一个条形图:

var moveChart    = dc.barChart("#move-chart","chart2"); 

这是用来执行时间过滤器的。

moveChart
.width(700)
...
.dimension(timeDim)
.group(foo) 

现在,假设我在控制台上做了:

timeDim.filterRange([minTime,maxTime]);
dc.renderAll("chart2");

这使得其他图表反映 selection,但不反映 moveChart。

我也尝试执行 Gordon 的评论,但我不明白。在控制台中,我可以看到 moveChart.filters。没有实现像RangedFilter或TwoDimensionalFilter这样的过滤器,所以我不确定如何在画笔上执行过滤器功能。

谢谢。

A chart will not observe filters on its own dimension,所以我认为你真的想要刷子选项。

filter = dc.filters.RangedFilter(filter[0], filter[1]);
moveChart.filter(filter);

Ranged filter doc

您只需要在图表上设置过滤器即可;图表将在维度上设置过滤器。