2016-03-03 58 views
0

我想繪製高圖中的日期時間圖表。我從Java HashMap中經過系列地圖和訪問它在JS爲:Highchart:從java中傳遞系列圖時繪製日期時間圖表問題

var chartRoot = '#{value}'.evalJSON(true); 

和進給地圖串聯爲:

series : [{color:'#057E7E', 
           data : chartRoot.series[0].y1axis, 
           name:'#{empty y1axistitle ? '' : y1axistitle}', 
           type: 'line', 
           tooltip: { 
            valuePrefix: '' 
           } 
           },{ 
           color:'#FF8230', 
           data : chartRoot.series[0].y2axis, 
           name:'#{empty y2axistitle ? '' : y2axistitle}', 
           type: 'line', 
           tooltip: { 
            valuePrefix: '$' 
           }, 
           yAxis: 1 
            }] 

其中y1axis和y2axis是HashMap中與2 y軸上的數據。

我不能像這樣繪製圖表。我甚至改變了散列圖的類型,但它不起作用。 請幫我我是新來的高圖。

在此先感謝。

+0

你能告訴你在'chartRoot.series [0] .y1axis'中有什麼嗎?例如'console.log(chartRoot.series [0] .y1axis)'。 –

+0

對象{13253.76億= 1.09,13305.6億= 1.66,1333238400000 = 0.55,更...} 基本上,它的地圖類型長,浮在那裏長代表以毫秒爲單位 在我的測試highchart文件我用的系列爲時間: 數據:[ [13253.76億,5], \t \t \t [1328054400000,10], \t \t \t [13305.6億,25], \t \t \t [1333238400000,35], \t \t \t [1335830400000,68] ] 這是完美的工作。我不知道我上面的代碼有什麼問題。 –

+0

我懷疑是數據的格式是問題。有什麼辦法可以在javascript中將chartRoot.series [0] .y1axis中的對象{1325376000000 = 1.09}更改爲[[1325376000000,5]]。 請參閱上述評論 –

回答

0

這是您的數據問題。目前,你有對象:

{ 
    1325376000000: 1.09, 
    1330560000000: 1.66, 
    1333238400000: 0.55, 
    more... 
} 

雖然應該是:

[ 
    [1325376000000, 1.09], 
    [1330560000000, 1.66], 
    [1333238400000, 0.55], 
    more... 
] 

您可以重新格式化這JS:

var myData = []; 

for (var time in chartRoot.series[0].y1axis) { 
    myData.push([time, chartRoot.series[0].y1axis[time]]); 
} 

現在在series.data選擇使用myData