D3.js v5:如何使用filter()获取可刷条形图中选定区域的数据

w46czmvw  于 2023-04-30  发布在  其他
关注(0)|答案(1)|浏览(133)

我试图使用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
  }

所选条形图:

hfwmuf9z

hfwmuf9z1#

问题解决了过滤器的使用没有问题。我使用了d.x0和d。x1而不是this.xScale(d),它可以工作。

相关问题