d3.js:Scatterplot,堆栈过滤/下拉效果&处理相同的数据点

时间:2016-06-20 03:45:00

标签: javascript d3.js scatter-plot dropdown

代码:http://plnkr.co/edit/DW8QYHb3p1la68KBTPof?p=preview

    dropDownDate.on("change", function() {
        var selected = this.value;
        displayOthers = this.checked ? "inline" : "none";
        display = this.checked ? "none" : "inline";

        if(selected == 'All'){
        svg.selectAll(".datapoint")
            .attr("display", display);

        }

        else{
        svg.selectAll(".datapoint")
            .filter(function(d) {return selected != d.date;})
            .attr("display", displayOthers);

        svg.selectAll(".datapoint")
            .filter(function(d) {return selected == d.date;})
            .attr("display", display);

        }
    });

    dropDownInd.on("change", function() {
        var selected = this.value;
        displayOthers = this.checked ? "inline" : "none";
        display = this.checked ? "none" : "inline";

        if(selected == 'All'){
        svg.selectAll(".datapoint")
            .attr("display", display);
        }

        else{
        svg.selectAll(".datapoint")
            .filter(function(d) {return selected != d.industry;})
            .attr("display", displayOthers);    
        svg.selectAll(".datapoint")
            .filter(function(d) {return selected == d.industry;})
            .attr("display", display);
        }
    });

我喜欢做两件事:
1)制作过滤/下拉列表效果堆栈,截至目前,我说使用第一个过滤器日期,然后使用第二个过滤器行业,第二个过滤器的效果将覆盖第一个过滤器

2)如何处理相同的数据点。如果您引用 orderInfo.json 中的前2个对象,则它们具有相同的音量和日期,因此您只能看到该值的1个圆圈。尽管具有相同的位置,但区分彼此的最佳方法是什么?

对于x轴,它现在可能看起来很奇怪,因为我只添加数据2天。

0 个答案:

没有答案