2014-09-21 32 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');