在哪里放.remove()来清除以前的数据点?

时间:2014-09-21 11:20:30

标签: d3.js

在通过放大或缩小切换时间间隔后,我无法更新时间线。旧数据点仍保留在我的图表上(时间轴)。我尝试在.filter()之后添加.remove()但它没有用。不胜感激任何善意的建议。感谢。

    function update() {
        // re-position individual elements
        svg.selectAll('.element')
        //.remove()

        .filter(function(d) { 
            if (interval == 'hours') {
                return d.Interval == 'hour'; 
            }
            else if (interval == 'days') {
                return d.Interval == 'day'; 
            }
            else if (interval == 'weeks') {
                return d.Interval == 'week'; 
            }
            else if (interval == 'months') {
                return d.Interval == 'month'; 
            }
        })

        .attr('transform', function (d) {
            //return 'translate(' + xScale(d.date) + ', ' + yScale(d.Ranking) + ')';

            if (interval == 'hours') {
                return 'translate(' + xHoursScale(d.date) + ', ' + yScale(d.Ranking) + ')';
            }
            if (interval == 'days') {
                return 'translate(' + xDaysScale(d.date) + ', ' + yScale(d.Ranking) + ')';
            }
            if (interval == 'weeks') {
                return 'translate(' + xWeeksScale(d.date) + ', ' + yScale(d.Ranking) + ')';
            }
            if (interval == 'months') {
                return 'translate(' + xMonthsScale(d.date) + ', ' + yScale(d.Ranking) + ')';
            }
        });

1 个答案:

答案 0 :(得分:0)

        svg.selectAll('.element')
        .filter(function(d) { 
            if (interval != 'hours') {
                return d.Interval == 'hour'; 
            }
        })
        .attr('visibility', 'hidden');

        svg.selectAll('.element')
        .filter(function(d) { 
            if (interval != 'days') {
                return d.Interval == 'day'; 
            }
        })
        .attr('visibility', 'hidden');

        svg.selectAll('.element')
        .filter(function(d) { 
            if (interval != 'weeks') {
                return d.Interval == 'week'; 
            }
        })
        .attr('visibility', 'hidden');

        svg.selectAll('.element')
        .filter(function(d) { 
            if (interval != 'months') {
                return d.Interval == 'month'; 
            }
        })
        .attr('visibility', 'hidden');

        svg.selectAll('.element')
        .filter(function(d) { 
            if (interval == 'hours') {
                return d.Interval == 'hour'; 
            }
        })
        .attr('visibility', 'visible');

        svg.selectAll('.element')
        .filter(function(d) { 
            if (interval == 'days') {
                return d.Interval == 'day'; 
            }
        })
        .attr('visibility', 'visible');

        svg.selectAll('.element')
        .filter(function(d) { 
            if (interval == 'weeks') {
                return d.Interval == 'week'; 
            }
        })
        .attr('visibility', 'visible');

        svg.selectAll('.element')
        .filter(function(d) { 
            if (interval == 'months') {
                return d.Interval == 'month'; 
            }
        })
        .attr('visibility', 'visible');