[英]Highcharts columnrange date chart
我的目標是制作一個跟蹤用戶活動的圖表。 我希望它在首次登錄時以及上次登錄時進行繪圖。
我傳入此函數的數據( var refarray = [...data here...]
)是字符串格式,這意味着我需要將從數據庫中提供給我的日期解析為日期格式,或者我認為。 下面你會看到我的嘗試。
function hc_first_last_logon(selector, refarray){
var categories = [];
var Dat = [];
for(var i = 0; i<refarray.length; i++){ // store all user names and data
categories.push(refarray.name)
Dat.push([Date.parse(refarray.FirstLogon), Date.parse(refarray.LastLogon)])
}
//console.log(Dat) returns date time objects as expected
var def = {
chart: { type: 'columnrange', inverted: true },
legend: { enabled: false},
title:{ text: "First and Last Log-on"},
xAxis:{ categories: categories, title:{text: "User"}},
yAxis:{ type: 'datetime' },
series:[{name: "First and Last Log-on", data: Dat}]
};
var div = $('#' + selector);
console.log(div);
div.highcharts(def);
return def;}
我的意圖是這個圖表是多功能的,允許我選擇任意數量的不同用戶,並在我點擊我的html頁面上的刷新按鈕時獲取圖表(它查詢數據庫並將數據發送到此功能)。
我懷疑我的問題與日期變量Dat
,因為字符串和日期變量類型似乎不是highcharts的可接受數據輸入。
這是我在返回的代碼中獲得的錯誤的屏幕截圖。 10x2矩陣幾乎完全相同,所以我只包含一行。 錯誤#17對應於不可接受的數據類型,這證實了我的懷疑。
有什么建議么?
更新:我包括highcharts-more.js,現在擺脫了上面提到的錯誤。 日期范圍仍有點偏差。 下面是現在正在發生的事情的圖像。
感謝@GrzegorzBlachliński和他的建議,我能夠找到問題並解決它。 這是出了什么問題:
1)我沒有加載highcharts-more.js包含此文件解決了Highcharts錯誤17。
2)日期需要從1970年1月1日起以毫秒為單位。 輕松修復生成的日期(datevar).getTime()。
3)我沒有工具提示格式化程序。 我復制了一個完成工作的互聯網,它工作了!
以下是感興趣的人的代碼:
function hc_first_last_logon(selector, refarray){
var categories = [];
var Dat = [];
for(var i = 0; i<refarray.length; i++){ // store all user names and data
categories.push(refarray.name)
Dat.push([Date.parse(refarray.FirstLogon).getTime(), Date.parse(refarray.LastLogon)].getTime())
}
//console.log(Dat) returns date time objects as expected
var def = {
chart: { type: 'columnrange', inverted: true },
legend: { enabled: false},
title:{ text: "First and Last Log-on"},
xAxis:{ categories: categories, title:{text: "User"}},
yAxis:{ type: 'datetime' },
tooltip: {
formatter: function() {
return new Date(this.point.low).toUTCString().substring(0, 22) + ' - ' + new Date(this.point.high).toUTCString().substring(0, 22)
}
},
series:[{name: "First and Last Log-on", data: Dat}]
};
var div = $('#' + selector);
console.log(div);
div.highcharts(def);
return def;}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.