Ho un set di dati tale che se ordinati in ordine crescente i cerchi finiscono "impilati" ma appaiono correttamente distribuiti quando si usa un ordinamento nullo o decrescente.d3.layout.pack impila i cerchi quando l'ordinamento è crescente
esempio completo è qui: http://jsfiddle.net/SXLHx/3/.
Qualcuno ha un suggerimento?
sortItems = function(a,b) {
var str,result;
switch(sortOrder%3){
case 0:
str = 'ascending';
result = a.size - b.size;
break;
case 1:
str = 'descending';
result = b.size - a.size;
break;
default:
str = 'null';
result = null;
}
document.getElementById("sortLbl").innerHTML = str;
return result;
};
pack = d3.layout.pack().sort(sortItems);
Alcune informazioni aggiuntive:
ho scoperto che se tolgo almeno due delle voci blocchi che hanno il valore 0 (non importa che due, ma che doveva essere due) il layout è bene. http://jsfiddle.net/SXLHx/4/
Inoltre, applicando un filtro per non accodare cerchi con valore 0 in questo modo:
// Create circles
node.append("circle")
.filter(function(d){return d.size > 0;})
.attr("r",function(d){return d.r;});
non risolve il problema di layout. Forse sto filtrando in modo errato?
Sembra un insetto per me. –
Dobbiamo approfondire ulteriormente. L'ordine crescente funziona in questo [plunk] (http://plnkr.co/edit/npUSyrG8sHsQrqUPw7Y7?p=preview), che è basato su questo [esempio] (http://bl.ocks.org/mbostock/4063530) . – FernOfTheAndes