7

ajax 呼び出しから、次のデータが返されます。

18,635,21,177,20,165,22,163,24,162,25,145,19,143,23,139,26,112,27,110,28,104,30,91,29,88,31,68,32,57,36,55,34,53,33,51,35,46,37,44,39,42,43,39,42,39,41,38,38,37,44,36,45,34,48,31,40,31,47,27,49,23,46,21,50,21,52,17,55,17,53,16,51,15,54,12,58,6,57,6,59,4,63,4,56,3,62,2,64,2,100,2,68,1,78,1,60,1,97,1,70,1,65,1,69,1,71,1

そのうち、すべての偶数がキーであり、すべての奇数が値である必要があります。しかし、それをハイチャートデータとして解析する方法がわかりません。どういうわけか、JSON.parseを使用するとキーが「スライス」になり、それを正常に機能させる唯一の方法は、このようにシリーズデータに直接配置することです(奇数と偶数を別々の配列に分離した後) :

[names[0] + ' years old', parseFloat(values[0])]

これは素晴らしいことです。しかし、その後、何らかの形で配列をループして、すべてをシリーズ データにプッシュする必要がありますが、その方法がわかりません。このデータで for ループを作成した場合、highcharts シリーズのデータ​​に挿入するにはどうすればよいですか?

4

2 に答える 2

15

その系列データが配列にある場合は、次のように処理できます。

var myData = [18, 635, 21, 177, 20, 165, 22, 163, 24, 162, 25, 145, 19, 143,
             23, 139, 26, 112, 27, 110, 28, 104, 30, 91, 29, 88, 31, 68, 32,
             57, 36, 55, 34, 53, 33, 51, 35, 46, 37, 44, 39, 42, 43, 39, 42, 
             39, 41, 38, 38, 37, 44, 36, 45, 34, 48, 31, 40, 31, 47, 27, 49,
             23, 46, 21, 50, 21, 52, 17, 55, 17, 53, 16, 51, 15, 54, 12, 58, 6,
             57, 6, 59, 4, 63, 4, 56, 3, 62, 2, 64, 2, 100, 2, 68, 1, 78, 1, 60,
             1, 97, 1, 70, 1, 65, 1, 69, 1, 71, 1];
var mySeries = [];
    for (var i = 0; i < myData.length; i++) {
        mySeries.push([myData[i], myData[i + 1]]);
        i++
    }

シリーズ データを「mySeries」に取得したら、以下を使用してチャート データを設定できます。

series:[{
    data: mySeries
}]

または、グラフをレンダリングした後にデータを追加する場合は、次を使用して系列データを動的に追加できます。

chart.series[0].setData(mySeries);

http://jsfiddle.net/Cm3Ps/ (「Add My Data」ボタンを押します)。

于 2013-04-17T13:56:16.903 に答える