2012-04-17 23 views
1

我想从一个url创建的json数组填充dojo饼图。我想从一个url创建的json数组填充DOJO饼图

链接返回一个数组,看起来像这样

{ “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 Other”:[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其他”,哈希[“ICMPv6报”])

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

chart1.addSeries( “IP其他”,散列[ “IPv4的其他”])

它覆盖图和示出,而不是添加另一片的对IP以外的数据。

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

回答

1

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

chart.addSeries("IP", dojo.map(responseObj, function(p){ 
    return { 
    y: p[1], // value 
    text: p[0] // label 
    }; 
}); 
+0

感谢这工作完美 – asqwrd 2012-04-18 16:26:27

+0

如果我想这样做的条形图我会如何做到这一点。我现在正在试图制作一个条形图,但这个映射似乎并没有显示数据 – asqwrd 2012-05-16 17:54:50