D3.js:如何从图形的刷区域中选择数据?

时间:2015-10-08 07:41:58

标签: javascript d3.js

我有以下图表,其中鼠标刷(浅蓝色区域)用于选择数据。 enter image description here

如何从所选区域获取数据? 我尝试的以下和许多其他解决方案似乎都不起作用。

brush.on('brush', function(d){  
    console.log(d);
});

请参阅JSFIDDLE

2 个答案:

答案 0 :(得分:5)

您可以使用以下方式获取画笔选定的y轴范围:

brush.on('brush', function(d){  
    k = brush.extent();
    console.log(k);
});

要在所选画笔区域中获取数据,请执行以下操作:

k = brush.extent();
j = data.filter(function(d){
    return k[0] <= d.date && k[1] >=d.date;
});
console.log(j)//this is the selected dataset

工作代码here

希望这有帮助!

答案 1 :(得分:0)

对于d3v4,您可以使用以下方式:

var selection = d3.event.selection;
var e = selection.map(x.invert, x); // return [start,end] for axis