1. 程式人生 > >用Highcharts畫曲線圖的時間軸問題

用Highcharts畫曲線圖的時間軸問題

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翻譯一下的衝動。。。