在HighCharts中显示基于时间的日志

时间:2015-05-07 06:35:47

标签: javascript logging highcharts

我需要在列图的X轴上显示我从设备获取的一些日志的时间值。列图具有Y轴的常量值,基本上我希望日志在获取日志时显示为棒。

日志的日期,时间格式如下:2015-05-07T06:08:54.430062Z

我理解这是ISO格式,因此我将“06:08:54.430062”转换为毫秒使用

var myDate = new Date(dt);          
var result = myDate.getTime();

获得的结果就像这样1430978934438.碰巧当我转换时,我也得到其他日志的类似值,即使它们有不同的时刻。

假设我有10个日志,图表只显示其中的4个。我用

var value=10;// this is a fixed constant value, since I want the log sticks to be of same height.
series.addPoint([result , value], false, false);

如何将所有日志视为与每个日志条目对应的记录?

如果您需要更多信息,请与我们联系。我是HighCharts和JS的新手,所以任何正确方向的帮助都会非常有用。

由于

添加了以下代码

for (var i = 0; i < nSeries; i++) {         
 dt=jsonData[i].isodate;
 var myDate = new Date(dt);         
 var result = myDate.getTime();         
 var series = mychart.series[0];
 series.addPoint([result, value], false, false);
}

mychart.redraw();


    instance.create = function(Highcharts, container) {
        Highcharts.setOptions({
            global: {
                useUTC: false
            }
        });

        var self = this;
        mychart = new Highcharts.Chart({
            chart: {
                renderTo: container,
                defaultSeriesType: 'column',
                plotBorderWidth: 1,
                showAxes: true,
                animation: Highcharts.svg 
            },
            title: {
                text: 'Logs'
            },
            xAxis: {
                type: 'datetime',
                events: {
                    setExtremes: function (e) {
                        console.log('e.min: ' + Highcharts.dateFormat(null, e.min) +
                                ' | e.max: ' + Highcharts.dateFormat(null, e.max) + ' | e.trigger: ' + e.trigger);
                        if (e.trigger) {
                            self.autoScroll = false;
                        }
                    }
                }
            },
            yAxis: {
                title: {
                    text: ''
                }
            },
            tooltip: {
                formatter: function () {
                    console.log(this);
                    return '<b>' + this.series.name + '</b><br/>' +
                    Highcharts.dateFormat('%H:%M:%S.%L', this.x) + '<br/>'+this.key;
                }
            },
            legend: {
                enabled: true
            },
            exporting: {
                enabled: true
            },
            plotOptions: {
                column: {
                    stacking: null
                }
            },
            scrollbar: {
                enabled: true
            },
            series: [{
                name: 'Logs',
                data: [],
                stack: 'LogStack'
            }]
        });
    };

0 个答案:

没有答案