用Highcharts畫曲線圖的時間軸問題
阿新 • • 發佈:2018-12-31
http://www.highcharts.com是一個很強大的js畫圖工具,這幾天把它用在專案裡。
有個問題一直困擾我,在畫曲線圖的時候,橫軸想讓它顯示成時間格式,怎麼搞都不行。如果直接用字串方式顯示,一條線上資料點很多的時候,就都擠到一起去了。
這玩意中文資料很少,去它官網論壇逛了逛,後來發現,xAxis如果想設定成datetime,時間資料是不能放到categories裡的,要放到series裡去。
下面是個例子:
var chart1option = { chart: { renderTo: 'sysThreadChart'//畫到id為sysThreadChart的div容器裡 }, credits : { enabled:false }, title: { text: 'Date Time Axis Test', style: { margin: '10px 100px 0 0' // center it } }, xAxis: { type:"datetime",//時間軸要加上這個type,預設是linear maxPadding : 0.05, minPadding : 0.05, //tickInterval : 24 * 3600 * 1000 * 2,//兩天畫一個x刻度 //或者150px畫一個x刻度,如果跟上面那個一起設定了,則以最大的間隔為準 tickPixelInterval : 150, tickWidth:5,//刻度的寬度 lineColor : '#990000',//自定義刻度顏色 lineWidth :3,//自定義x軸寬度 gridLineWidth :1,//預設是0,即在圖上沒有縱軸間隔線 //自定義x刻度上顯示的時間格式,根據間隔大小,以下面預設的小時/分鐘/日的格式來顯示 dateTimeLabelFormats: { second: '%H:%M:%S', minute: '%e. %b %H:%M', hour: '%b/%e %H:%M', day: '%e日/%b', week: '%e. %b', month: '%b %y', year: '%Y' } }, //經測試,不能把時間值放到categories裡,必須放到series的data裡面去 //這樣是不行的:categories:[1274457600000,1274544000000,1274630400000] //時間單位是毫秒,Unix時間戳乘上1000 series:[{ data: [ [1274457600000, 1200], [1274544000000, 1300], [1274630400000, 1250], [1274803200000,1350] ] }] }; $(document).ready(function() { //真正的畫圖是這句 chart1= new Highcharts.Chart(chart1option); });
這個帖子也給了2個例子,似乎時間格式不一定使用時間戳也行?畫出來是這樣的:
這個帖子也給了2個例子,似乎時間格式不一定使用時間戳也行?
有時間再整理一下其他hightcharts畫圖的例子,有點把它那個Options Reference翻譯一下的衝動。。。