我有一个奇怪的问题,我似乎无法弄明白。我有一个堆积区域图表,下面有一个较小的上下文图表,我可以刷相似于此:http://bl.ocks.org/mbostock/1667367
画笔正在工作,但仅适用于第一层(我已经将剪辑关闭,因为它更容易看到发生了什么)。
如果我检查控制台中的数据,刷子功能只有第一个键,如果我更改数据的顺序,图表中的键会发生变化,所以它始终是第一个键所在的位置。
这是一个JSFiddle:http://jsfiddle.net/goodspeedj/7Qzt4/
这是刷函数 - 函数中的第3行有console.log语句,显示数据只有'ABORTED'键(第一层)。
function brushed() {
main_x.domain(brush.empty() ? mini_x.domain() : brush.extent());
//main.select(".layer").attr("d", main_area);
main.select(".layer").attr("d", function(d) { console.log(d); return main_area(d.values); })
main.select(".x.axis").call(main_xAxis);
}
我猜这是非常简单的事情 - 我似乎无法看到它。谢谢!
答案 0 :(得分:3)
我想出来了。我应该一直在调用selectAll而不是在刷函数中选择。
此:
main.selectAll(".layer").attr("d", function(d) { console.log(d); return main_area(d.values); })
而不是:
main.select(".layer").attr("d", function(d) { console.log(d); return main_area(d.values); })