背景信息:我正在跟踪每天一次的游戏更新,因此我在数据库中添加了一个以毫秒为单位的 unix 时间戳,一切正常。
我不知道如何使 highchart 的 y 轴成为“静态”24 小时范围。我想要的是这样的:
(别看我的画技)
我的 x 轴可以工作,但我不知道如何将 y 轴正确设置为静态 24 小时范围。
我目前的进度:
$('#chart').highcharts({
chart: {
type: 'column'
},
xAxis: {
type: 'datetime',
tickInterval: 24 * 3600 * 1000,
},
yAxis: {
labels: {
formatter: function() {
return moment.utc(this.value).format('HH:mm:ss');
}
},
title: {
text: 'static 24h range on this axis'
},
},
series: [{
name: 'time',
data: [[1447459200000, 1447498374000], [1447545600000, 1447559210000]]
}]
});
http://jsfiddle.net/yrqzcys2/8/
有没有办法实现这一点,我已经四处寻找,但找不到解决这种情况的方法。
感谢任何帮助!
编辑:
所以该系列中的数据是一个转换为日期时间的unix时间戳,它将包含一个日期和一个时间。基本上我希望 x 轴上有日期,y 轴上有时间。因此 y 轴上的 24 小时范围。
最佳答案
我在 jlbriggs 的帮助下通过计算秒数得出了这个结果。这是通过从确切的 unix 时间戳中减去 00:00 日期的 unix 时间戳来完成的。
http://jsfiddle.net/yrqzcys2/16/
$(function() {
var data = [];
/* Pretend that this part of code is in a loop and add an array to the main data array */
// from database
var datetime = moment.utc("2015-11-14 10:52:54");
var day = moment.utc(datetime.format('YYYY-MM-DD')).valueOf();
var exact = datetime.valueOf();
var temp = [];
temp.push(day);
temp.push(exact - day);
data.push(temp);
/* End of loop */
$('#chart').highcharts({
chart: {
type: 'column'
},
xAxis: {
type: 'datetime',
tickInterval: 24 * 3600 * 1000,
},
yAxis: {
labels: {
formatter: function() {
return moment.utc(this.value).format('HH:mm:ss');
}
},
title: {
text: 'Now shows a \'static\' range'
},
tickInterval: 3600 * 1000,
},
tooltip: {
useHTML: true,
formatter: function() {
return moment.utc(this.y, 'x').format('HH:mm:ss z');
}
},
series: [{
name: 'time',
data: data
}]
});
});
关于javascript - 如何在柱形 Highcharts 的 y 轴上设置 24 小时范围,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37217058/