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"])

これにより、その1つのアイテムがグラフに入力されますが、たとえば別のシリーズを追加しようとすると

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

別のスライスを追加する代わりに、チャートを上書きし、IP Other のデータを表示します。

配列内のすべての項目を円グラフに追加するにはどうすればよいですか?

4

1 に答える 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 に答える