Highcharts:无法识别dateTime(以毫秒为单位)

时间:2016-03-28 20:51:46

标签: javascript datetime highcharts

我有一个包含3个不同绘图线的高图图表。 Y轴是数字格式,X轴是dateTime。这些图表正在正确显示,但X上的标签显示为00:00:00'并且工具提示显示1970年1月1日。

这是我初始化图表的代码:

Co2Chart = new Highcharts.Chart({
        chart: {
            renderTo: 'co2-graph',
            type: 'spline',
            animation: Highcharts.svg,
            marginRight: 10,
            events: {
                load: function () {
                    updateData();
                    setInterval(updateData, 5000);
                }
            }
        },
        title: {
            text: ''
        },
        xAxis: {
            type: 'datetime',
            tickPixelInterval: 150,
            labels: {
                formatter: function () {
                    return Highcharts.dateFormat('%H:%M:%S', this.value);
                }
            }
        },
        yAxis: {
            title: {
                text: 'CO2, ppm'
            },
            plotLines: [{
                value: 0,
                width: 1
            },{
                value: 1,
                width: 1
            },{
                value: 2,
                width: 1
            }]
        },
        tooltip: {
            formatter: function () {
                return '<b>' + this.series.name + '</b><br/>' +
                    Highcharts.dateFormat('%Y-%m-%d %H:%M:%S', this.x) + '<br/>' +
                    Highcharts.numberFormat(this.y, 2);
            }
        },
        legend: {
            enabled: true
        },
        plotOptions: {
            spline: {
                marker: {
                    enabled: false
                }
            }
        },
        exporting: {
            enabled: false
        },
        series: [{
            name: 'Master',
            data: []
        },
        {
            name: 'Slave 1',
            data: []
        },
        {
            name: 'Slave 2',
            data: []
        }]
    });

这个推送数据:

for(var i = 0; i < array.length; i++){
                var time = Date.parse(array[i]["dateTime"]);
                Co2Chart.series[0].addPoint(array[i]["masterCo2"], time);
                Co2Chart.series[1].addPoint(array[i]["slave1Co2"], time);
                Co2Chart.series[2].addPoint(array[i]["slave2Co2"], time);
}

传递给Date.parse的DateTime字符串如下所示2016-03-28 22:47:49。并以毫秒为单位 - 1459198069000

为什么它没有显示的任何想法?

graph example

1 个答案:

答案 0 :(得分:1)

问题是你如何使用addPoint方法:

Co2Chart.series[0].addPoint(array[i]["masterCo2"], time);

应该是:

Co2Chart.series[0].addPoint([time, array[i]["masterCo2"]]);

或者:

Co2Chart.series[0].addPoint({
  y: array[i]["masterCo2"], 
  x: time
});