2011-11-25 85 views
6

我有一些數據,看起來像這樣:繪製秒,分和小時的Y軸與Highcharts

分鐘=「00:09」值=「3點11分」的意思是=「23點39分」 max =「12:40:26」

我希望能夠使用這些值作爲數據點,但我不知道如何繪製它們,因爲它們不是簡單的整數。理想情況下,我希望Y軸上的標籤顯示'小時',或者如果我要使用多個y軸,則可以顯示'最小'值爲'秒','平均'顯示'分鐘'值等,以適應適當的時間窗口。

我不確定是否可以使用日期時間對象,因爲我只有時間值而不是日期。

任何想法將不勝感激,並提前致謝。

回答

9

如果你有時間是靜態的字符串,你可以將它們轉換成DateTime對象...

//convert 'string' times into a timestamp (milliseconds) 
//so long as your string times are consistently formatted 
//e.g. "0:03:00" not "3:00" 
var t = Date.parse("1-1-1 " + yourTime) 

...但是如果你可以把它們變成一毫秒的價值可言,你應該沒事的。

然後使用y軸的正常時間格式,它像使用日期標籤格式格式化爲你...

var chart = new HighChart({ 
    //... 
    yAxis: { 
     type: 'datetime', //y-axis will be in milliseconds 
     dateTimeLabelFormats: { //force all formats to be hour:minute:second 
      second: '%H:%M:%S', 
      minute: '%H:%M:%S', 
      hour: '%H:%M:%S', 
      day: '%H:%M:%S', 
      week: '%H:%M:%S', 
      month: '%H:%M:%S', 
      year: '%H:%M:%S' 
     } 
    } 
}); 
+0

謝謝你的回答,現在看起來幾乎相當。問題是,現在在Y軸上,我的值看起來像這樣978307205000毫秒。這是有道理的,因爲它是1970年以來的毫秒數,因爲我將它添加到我的值中。 dateTimeLabelFormats不工作? – LCL

+0

好吧,我通過添加下面的代碼來解決它: var timeToSubtract = Date.parse(「1-1-1 00:00:00」); 然後,而不是推數組中的't'我推t - timeToSubtract。 謝謝 – LCL

+0

您將如何修改工具提示以顯示相同格式的y值? – panmari