繁体   English   中英

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

[英]D3.js v5: How can I use filter() to get the data in the selected region of a brushable bar chart

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

所选条形图:

在此处输入图像描述

问题解决了。 使用过滤器没有问题。 我使用 d.x0 和 d.x1 而不是this.xScale(d)并且它有效。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM