Je suis extrêmement frustré d'essayer d'élaguer et de remettre à Protovis un ensemble de matrices contenant uniquement des nombres d'un ensemble d'objets de données qui ressemble à quelque chose comme ci-dessous pour établir trois camemberts (pv.Wedge) pour chaque objet ...Gestion de plusieurs objets de données dans Protovis (visualisation d'informations javascript)
myData = [{dept:"Accounting",sal:90000,equ:10000,trvl:267,extra:5000},
{dept:"Sales",sal:20000,equ:10000,trvl:3049,extra:7000},
{dept:"Consulting",sal:90000,equ:58000,trvl:983,extra:17000}];
de la documentation on me dit qu'il ya peu de looping il faut faire Protovis, mais je ne peux pas sembler obtenir le myData manipulé/analysables correctement, hélas j'ai recouru à la boucle explicite. J'ai essayé plusieurs types de boucles, mais le meilleur que j'ai obtenu est une impression des nombres sous un espace vide où je voudrais que les camemberts apparaissent. Je serais reconnaissant si quelqu'un pourrait me donner un indice quant à ce que je devrais faire pour y parvenir. À l'heure actuelle, je suis coincé à -
function getData(dept) {
var getvals = new Array();
for(idx in dept) {
for(i in idx) {
if(idx[i]=="^[0-9]+$") {
getme.push(idx[i]);
}
}
}
return getvals;
}
// myData = myData.map(function(d) {
// var valonly = new Array();
// for(key in d) {
// if(isNaN(d[key])==false) {
// valonly.push(d[key]);
// }
// }
// return valonly;
// });
var vis = new pv.Panel()
.width(w)
.height(h)
.data(getData(myData))
vis.add(pv.Wedge)
//.data(pv.normalize(getData(myData)))
.left(100)
.bottom(100)
.outerRadius(r)
.angle(function(d) d * 2 * Math.PI)
vis.add(pv.Label)
.bottom(0)
.left(100)
.textAlign("center")
//.text(data.dept + " - " + "total: " + hrsum);
vis.render();