javascript - 如何在柱形 Highcharts 的 y 轴上设置 24 小时范围

标签 javascript highcharts

背景信息:我正在跟踪每天一次的游戏更新,因此我在数据库中添加了一个以毫秒为单位的 unix 时间戳,一切正常。

我不知道如何使 highchart 的 y 轴成为“静态”24 小时范围。我想要的是这样的:

don't mind my paint skills

(别看我的画技)

我的 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/

相关文章:

javascript - 简化 Javascript,根据 URL 添加 "active"类(DRY)

javascript - jQuery scrollTo 仅在 Chrome 61 之后有效

javascript - 在 CoffeeScript 中,我可以像在 JavaScript 中那样在声明之上实例化一个类吗?

javascript - 在饼图的图例中添加系列值

highcharts - 如何调整highcharts中网格线的间距

javascript - Highcharts - 2 个同步事件量表

javascript - 如何在 Windows 8/Cordova 应用程序中打开本地 PDF?

javascript - dust.js - 我可以使用助手来循环访问逗号分隔值吗?

highcharts - 如何通过 Highcharts 中的 onclick 事件隐藏 Axes Crosshairs

highcharts - 动态添加系列 Highcharts