Highcharts - 在热图中显示日期

时间:2014-05-28 15:58:44

标签: javascript highcharts

我有任何简单的方法来加载热图中的数据,日期为" Y"。

我的数据采用以下格式:

[{x:1, y: 1401292253, value:0.2, name:"a"},{x:2, y: 1401173762, value:0.3, name:"b"},{x:0, y: 1401173462 , value:0.6, name:"c"}]

我希望根据给定的值自动构建热图的Y.但是我无法弄清楚如何去做。

我尝试的是: http://jsfiddle.net/tZ6GP/16/

2 个答案:

答案 0 :(得分:3)

您需要设置rowsize(或colsize表示xAxis)以告知高级图表每个点的范围。否则它将是1ms,这是非常低的价值。第二件事是你的y值以秒为单位,而在JS中,时间戳以ms为单位。

当改变这两件事时,你会得到漂亮的图表:http://jsfiddle.net/tZ6GP/19/

    series: [{
        rowsize: 3600000, // one hour
        data: [{
            x: 0,
            y: 1401292253000,
            value: 0.2,
            name: "a"
        }, {
            x: 1,
            y: 1401173762000,
            value: 0.3,
            name: "b"
        }, {
            x: 2,
            y: 1401173462000,
            value: 0.6,
            name: "c"
        }]
    }]

答案 1 :(得分:1)

要执行此操作,您必须将yAxis视为类别,但随后应用label.format。这应该让你开始:

xAxis: {
    type: 'category',
    categories: ['a', 'b', 'c']
},

yAxis: {
    type: 'category',
    categories: ['1401292253', '1401173762', '1401173462'],
    labels: {
            format: '{value: %H:%M:%S}'
        }
}

我还清理了你的series.data。基本上你需要给出矩阵坐标(x / y)和值。

series: [{
    data: [{
        x: 1,
        y: 0,
        value: 0.2
    }, {
        x: 2,
        y: 1,
        value: 0.3
    }, {
        x: 0,
        y: 2,
        value: 0.6
    }]
}]

通过查看此信息,您可以确定积分的位置。

直播 demo

更新最新的高级卡片代码。您需要修改yAxis标签格式化程序:

yAxis: {
    categories: ['1401292253', '1401173762', '1401173462'],
    labels: {
        formatter: function () {
                            var theTime = parseFloat(this.value);
            return Highcharts.dateFormat('%H:%M:%S', theTime);
        }
    }
},

直播更新demo