2013-04-26 32 views
14

Sadece belirli öğeler için etiket görüntülemek amacıyla veri kümesini filtrelemeye çalışıyorum. Burada gösterilen filtre işe yarıyor gibi gözüküyor, çünkü açıkçası kaçınmak istediğim binlerce boş eleman yaratıyor. Bunun nedeni, filtrenin eklendikten sonra gelmesidir, ancak filtreyi ek ifadenin üzerine taşırsam, kırılır. ben yanlış buradaD3 JS Veri Filtreleme

var labels = svg.selectAll("text.label") 
    .data(partition.nodes(bp.data.preparedData)) 
    .enter() 
    .append("text") 
    .filter(function(d){return d.ci_type === 'type'}) 
     .attr("class", "label") 
     .attr("transform", function(d) { return "translate(" + arc.centroid(d) + ")"; }) 
     .text(function(d, i) { return d.name }); 

cevap

25

Eğer D3 geçirmeden önce verilerinizi filtrelemek istediğiniz gibi geliyor yapıyorum

. Yani, kodunuz

var labels = svg.selectAll("text.label") 
    .data(partition.nodes(bp.data.preparedData).filter(
      function(d){return d.ci_type === 'type'})) 
    .enter() 
    .append("text") 
    .attr("class", "label") 
    .attr("transform", function(d) { return "translate(" + arc.centroid(d) + ")"; }) 
    .text(function(d, i) { return d.name }); 
+1

olacaktır. :) – Cheyne