2014-09-21 48 views
0

我在通过放大或缩小切换时间间隔后更新时间线时遇到问题。旧的数据点保留在我的图表(时间线)上。我曾尝试在.filter()之后添加.remove(),但它不起作用。将不胜感激任何忠告。谢谢。在哪里把.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) + ')'; 
      } 
     }); 
+0

你没有任何新的数据绑定到你的观点,所以没有选择退出计算。你如何确定删除哪些点? – 2014-09-21 11:38:27

+0

我如何将数据绑定到一个点上?你能给我一个简单的例子吗?谢谢。 – 2014-09-21 11:41:57

+0

参见例如[本教程](http://bost.ocks.org/mike/circles/)。 – 2014-09-21 11:42:26

回答

-1
 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');