2012-04-17 1 views
1

URL로 만든 json 배열에서 도조 원형 차트를 채우려고합니다. [[ "IPv4의 TCP", 475,919,493,840], [ "의 IPv6 TCP", 37443255432], [ "IPv4의 UDP", 34595392128 :URL로 만든 json 배열에서 DOJO 원형 차트를 채우려고합니다.

URL은

{ "pieItems"과 같은 배열을 반환 ], [ "IPv6의 ICMP"14496], [ "IPv4의 ICMP"46560], [ "IP 기타"12385112]}

I 하나로 변경 배열의 형식을 재실행하려고 시도한 이 모양은 다음과 같습니다.

{ "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 기타"해시 [ "IPv6의 ICMP은"])

이 그 하나 개의 항목으로 차트를 채 웁니다하지만 난 예를 들어 다른 시리즈를 추가하려고하면

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

+0

만약 내가 이것을 막대 그래프로하고 싶다면 어떻게해야할까요? 나는 이제 막대 그래프를 만들려고 노력하고 있지만이 매핑은 데이터를 표시하지 않습니다. – asqwrd

관련 문제