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

标签 javascript d3.js dc.js crossfilter

我想做什么:

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

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

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

尝试过但不喜欢:

我尝试创建第二个时间维度并在其上选择日历。但是,这会使条形图的最小值和最大值根据该选择进行调整。条形图不会覆盖时间维度的全部维度,而只会覆盖日历上的选定时间段。这是我想避免的。

我怎样才能准确模拟图表本身的选择?

非常感谢。

编辑:

我试图理解评论中提出的建议。让我向您展示一些代码。

我有一个条形图:

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

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

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

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

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

这会使其他图表反射(reflect)选择,但不会反射(reflect) 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

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

关于javascript - dc.js 模拟点击图表并触发过滤器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27961196/

相关文章:

javascript - 减去功能时间

javascript - Angular 2 root 的路由始终处于事件状态

node.js - 将 shapefile 和 geoJson 转换为 TopoJson 和/或使用 geo2topo

javascript - dc.js - 重新排列行图中的标签

node.js - 是否可以使用node.js在服务器端运行dc.js?

javascript - Kendo UI for 网格列模板中的循环导致无限循环

javascript - 如何从 Windows 控制台停止 webpack 开发服务器?

javascript - 创建具有序数尺度的 d3 v4 直方图

javascript - D3 折线图中的自定义 x 轴刻度

javascript - 更新/重绘折线图时 dc.js 出现问题