1

我正在尝试从由 url 创建的 json 数组填充 dojo 饼图。

url 返回一个看起来像这样的数组

{"pieItems":[["IPv4 TCP",475919493840],["IPv6 TCP",37443255432],["IPv4 UDP",34595392128],["IPv6 ICMP",14496],["IPv4 ICMP",46560] ,["IP 其他",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 其他", hash["IPv6 ICMP"])

这会用该项目填充图表,但如果我尝试添加另一个系列,例如

chart1.addSeries("IP 其他", hash["IPv4 其他"])

它会覆盖图表并显示 IP Other 的数据,而不是添加另一个切片。

如何将数组中的所有项目添加到饼图中?

4

1 回答 1

1

根据定义,饼图仅支持一个系列对象。您应该为不同的切片添加不同的数据点。草图:

chart.addSeries("IP", dojo.map(responseObj, function(p){
  return {
    y:    p[1], // value
    text: p[0]  // label
  };
});
于 2012-04-17T22:31:36.703 回答