Tarte (donut) graphique segment de l'ordre dans D3
J'ai un donut graphique construit à l'aide de d3 avec un curseur jQuery qui permet à l'utilisateur de choisir entre les différents points de mesure. Le graphique anime la transition entre les valeurs de données et tout est bien.
Le problème: Les segments de toujours rendre dans le sens anti-horaire ordre de taille (du plus grand au plus petit). Cela signifie que les segments de changer leur position autour du graphique en fonction de leur taille.
Ce comportement est source de confusion pour les utilisateurs, mais malheureusement je ne peux pas savoir comment le changer. Je voudrais que les segments de rester dans leur position initiale.
De travail js-violon: http://jsfiddle.net/kerplunk/Q3dhh/
Je crois que le problème doit se situer dans la fonction de l'interpolation:
//Interpolate the arcs in data space.
function pieTween(d, i) {
var s0;
var e0;
if(oldPieData[i]){
s0 = oldPieData[i].startAngle;
e0 = oldPieData[i].endAngle;
} else if (!(oldPieData[i]) && oldPieData[i-1]) {
s0 = oldPieData[i-1].endAngle;
e0 = oldPieData[i-1].endAngle;
} else if(!(oldPieData[i-1]) && oldPieData.length > 0){
s0 = oldPieData[oldPieData.length-1].endAngle;
e0 = oldPieData[oldPieData.length-1].endAngle;
} else {
s0 = 0;
e0 = 0;
}
var i = d3.interpolate({startAngle: s0, endAngle: e0}, {startAngle: d.startAngle, endAngle: d.endAngle});
return function(t) {
var b = i(t);
return arc(b);
};
}
OriginalL'auteur Kerplunk | 2013-06-18
Vous devez vous connecter pour publier un commentaire.
d3 trie automatiquement par la valeur pour les diagrammes à secteurs. Heureusement, la désactivation de tri est assez facile, il suffit d'utiliser la
sort(null)
méthode sur ladonut
fonction, à savoir:Voici un violon.
C'est dans les docs pour tarte à la mise en page, sous
pie.sort
. L'Url est github.com/mbostock/d3/wiki/Pie-Layout.J'ai trouvé la valeur de trucs un peu détourner dans cette réponse - comme ckersch dit c'est que le dernier bit de la
.sort(null)
c'est de désactiver le tri.juste ce dont j'avais besoin. Merci!!!!
OriginalL'auteur ckersch