2015-06-24 65 views
0

我要回的是蟒蛇JSON數據:在highchart繪製XY點作爲[的X點列表],[Y點的列表]

{ 
"xpoints" : [a list of n numbers], 
"ypoints" : [a list of n numbers] 
} 

我使用highcharts以散點圖此數據。 我搜索一下,發現highcharts支持數據變量系列這需要輸入作爲

[[x1,y1],[x2,y2],[x3,y3],[x4,y4]..]

,但我想給輸入作爲

[[x1,x2,x3...],[y1,y2,y3...]]

就像在matplotib庫在python中。有出路嗎?

我無法控制返回JSON數據的方式。

Link to HighCharts data API

+0

唯一的方法是處理您的數據並返回Highcharts需要的[x,y]對。只需要通過返回的JSON – jlbriggs

回答

2

您不能更改HighCharts接受的格式。您需要修改您的數據以適應該格式。你可以在JS做到這一點很容易:

var json = { 
    "xpoints": [1, 2, 3, 4], 
    "ypoints": [10, 20, 30, 40] 
} 

var chartData = []; 
for (var i = 0; i < json.xpoints.length; i++) { 
    chartData.push([json.xpoints[i], json.ypoints[i]); 
} 

console.log(chartData); // = [[1,10],[2,20],[3,30],[4,40]] 

然後,您可以提供chartData陣列您HighChart初始化器。

+0

循環我不願意通過這個O(n)迭代:(實際上它已經花費7-8秒來獲取包含超過1000萬整數的整個json數據(然後firefox掛)。 那麼,難道就像沒有辦法給出這樣的輸入嗎?在這種情況下,我只能以這種方式進行。 –

+1

然後你可能會更好地改變服務器端的格式,但我不知道所以我可以向你保證HighCharts只接受一種格式 –

+1

無論如何,我不認爲Highcharts會處理1000萬分,或者說你的瀏覽器將無法處理渲染如此多的SVG元素而不掛。考慮使用Highstock和[懶惰加載](http://www.highcharts.com/stock/demo/lazy-loading) –

相關問題