我正在尝试从url创建的json数组填充dojo饼图。
url返回一个看起来像这样的数组
{“pieItems”:[[“IPv4 TCP”,475919493840],[“IPv6 TCP”,37443255432],[“IPv4 UDP”,34595392128],[“IPv6 ICMP”,14496],[“IPv4 ICMP” ,46560],[“IP Other”,12385112]]}
我试图重做数组的格式,将其更改为看起来像这样的
{“IPv4 TCP”:[475919493840],“IPv6 TCP”:[37443255432],“IPv4 UDP”:[34595392128],“IPv6 ICMP”:[14496],“IPv4 ICMP”:[46560],“ IP其他“:[12385112]}。
我用来改变格式的代码是:
var len = responseObj.pieItems.length, i, hash = {};
for (i = 0; i < len; i++) {
hash[responseObj.pieItems[i][0]] = responseObj.pieItems[i][1];
}
更改格式后,我只能通过添加系列并指定名称来填充图表。
chart1.addSeries(“IP Other”,hash [“IPv6 ICMP”])
这会使用该项填充图表,但如果我尝试添加另一个系列,例如
chart1.addSeries(“IP Other”,hash [“IPv4 Other”])
它会覆盖图表并显示IP Other的数据,而不是添加另一个切片。
如何将数组中的所有项目添加到饼图中?
答案 0 :(得分:1)
饼图根据定义仅支持一个系列对象。您应该为不同的切片添加不同的数据点。草图:
chart.addSeries("IP", dojo.map(responseObj, function(p){
return {
y: p[1], // value
text: p[0] // label
};
});