1

我正在构建一个供内部使用的基本仪表板。我对 D3 / SVG 等几乎没有经验,所以如果这很明显,请原谅:

目标

我有一个时间序列的值,全年每个日期一个值。受dc.js wesbite上示例的启发,我正在显示整个系列的“迷你”条形图,并允许用户选择一个范围,该范围反过来设置“大”的轴比例范围的限制线图。

默认情况下(在页面加载/refreshAll() 上)我将大线图的限制设置为最近 60 天。

鼓励用户使用底部的迷你图设置所需的范围,当他们这样做时,会出现“抓取手柄”,并且所选范围会在迷你图上突出显示,例如:

抓取手柄显示

我的问题

在页面加载/refreshAll() 上,小图上不显示抓取句柄和范围突出显示,例如:

no_grab_handles

问题

有没有办法可以设置抓取手柄在页面加载时出现?

4

1 回答 1

1

这是我使用 crossfilter 和 dc.js 的方法。您可以通过执行以下操作获得最后 x 天:

xrange = d3.extent(data, function(d) { return d.date; });
last60 = [d3.time.day.offset(xrange[1], -60), d3.time.day.offset(xrange[1], 1)]

假设您date的数据中有一个。在使用 d3 读取数据之后,但在将其输入交叉过滤器之前执行此操作。

然后对于底部图表(迷你图),只需将过滤器属性设置为:

.filter(last60)

并将顶部图表的 xrange 设置为相同的范围:

.x(d3.time.scale().domain(last60))

像这样的东西也可能适用于设置 xrange,但我还没有成功:

topchart.focus(bottomchart.filter())
于 2013-06-25T07:51:05.903 回答