xAxis: { //表示為時間,注意大小寫 type: 'datetime', //間距,時間戳,以下表示間距為1天,如果想表示間距為1周,就這么寫 //7*24*3600*1000 tickInterval: 24 * 3600 * 1000, //格式化時間,day,week.... dateTimeLabelFormats: { day: '%Y-%m-%d' } }
有些在做跟時間有關數據展示的時候,首先想到的問題是我該傳什么樣的json格式數據來進行展示?
如下:
data:[[時間戳1,數據1],[時間戳2,數據2]] //例子: series: [{ name: 'Temperature', data: [[1527832563000,29.9], [1527918791000,71.5], [1528005191000,106.4], [1528091591000,129.2], [1528177991000,144.0], [1528264563000,176.0], [1528350963000,135.6], [1528437363000,148.5], [1528523763000,216.4], [1528610163000,194.1], [1528696563000,95.6], [1528782963000,54.4]], color: '#F33' }] //注意:這里的時間戳為毫秒級別,記得*1000
此時從后台獲取到的數據,格式有可能不太好轉變,你可以采用filter和map方法進行數據格式化,fiter進行多余數據的過濾,而map負責你想要數據列的提取,這兩個方法都會創建新數組,舉個栗子:
filterArray=data.filter(function(value){ let reg=/\/; if(reg.test(value)return value; }); mapArray=filterArray.map(function(value){ return [new Date(value.time).getTime(),Number(value.price)] })
更多關於數據列的信息請參考官網:https://www.hcharts.cn/docs/basic-series
此時你就可以往highcharts上綁定數據了,該怎么綁定呢?可參考官方API文檔:https://api.hcharts.cn/highcharts#Chart.addSeries
注:當采用時間為x軸間距時,hightcharts會有8小時的誤差顯示,解決辦法自行百度
最后附一張官網的圖,方便理解圖表中的屬性: