我试图使用d3画笔根据选定区域中的数据缩放图表。然而,当我尝试使用dataselected
接收过滤后的数据时,它在选择完成后返回了一个空数组。我想知道我使用filter()或其他任何东西是否有问题。
brushed(selection){
if (selection) {
console.log(this.data); // Not empty
let kw0 = this.xScale.invert(selection[0]);
let kw1 = this.xScale.invert(selection[1]);
this.xScale2 = d3.scaleLinear()
.domain([kw0, kw1])
.range([0, vis.width - vis.margin.right]);
this.dataselected = this.data.filter(function(d){
return (kw0 <= this.xScale(d)) && (this.xScale(d) <= kw1);
});
console.log(dataselected); // Empty array
}
所选条形图:
1条答案
按热度按时间hfwmuf9z1#
问题解决了过滤器的使用没有问题。我使用了d.x0和d。x1而不是
this.xScale(d)
,它可以工作。