2014-02-25 58 views
0

我正在嘗試構建環形圖,但仍然存在圖例,環和值的位置和更新問題。爲什麼舊數據保持不變並沒有被刪除? http://jsfiddle.net/NYEaX/123/d3.js更新標籤和環的問題

如果有更多或更少的數據 - 標籤不得到正確​​

//draw labels      
      valueLabels = value_group.selectAll("text.value").data(reversedata) 
      valueLabels.enter().append("svg:text") 
      .attr("class", "value") 
      .attr("transform", function(d) { 
       var rings = counts; 

       return "translate("+(that.radius+55)/rings+", 0)"; 
      }) 
      .attr("dx", function(d, i){ 
       return 19*i;   }) 
      .attr("dy", function(d, i){ 
       return -5; 
      }) 
      .attr("text-anchor", function(d){ 
       return "start"; 
      }).text(function(d){ 
       return d.value; 
      }); 

      valueLabels.transition().duration(300).attrTween("d", arcTween) 
      valueLabels.exit().remove(); 

回答

0

看這個Fiddle放置。

我無法使用您的數據,因爲我現在沒有時間了。

但我設法從這個link爲你得到這個。

這裏的innerRadius是使用數據中定義的索引來計算的。

希望它有幫助:)

+0

我明白了。那麼水平放置的標籤呢?它接受新數據呢?爲什麼我的示例上的標籤/戒指不能正常補充? –

+0

我已經更新了我的示例與一個額外的數據集 - http://jsfiddle.net/NYEaX/126/ –

+0

修復了價值位移問題 - http://jsfiddle.net/NYEaX/127/ - 但更新仍然是一個問題 - 它不會破壞舊的值/圖例 –