美文网首页
关于Echart中动态刷新对X轴秒级刻度的需求和实现

关于Echart中动态刷新对X轴秒级刻度的需求和实现

作者: Cichar | 来源:发表于2017-07-19 12:05 被阅读0次

描述

这是官方DEMO 动态数据 + 时间坐标轴 上的一个修改 ,可以满足秒级刷新及刻度需求的使用。

简单来说就是X轴选择类目轴,X轴的data传入一个额外的数组(例如date),原始的data构造成对象(为了tooltip构造方便)。动态更新的时候,date数组中传入data对象的第一个值。具体看下面修改过的代码和运行效果图。

代码

function randomData() {
    var now = new Date();
    value = value + Math.random() * 21 - 10;
    return {
        value: [
            [now.getHours(), now.getMinutes(), now.getSeconds()].join(':'),
            Math.round(value)
        ]
    }
}

var data = [];
var date = [];
var value = Math.random() * 1000;
for (var i = 0; i < 1000; i++) {
    data.push(randomData());
    date.push('')
}

option = {
    title: {
        text: '动态数据 + 时间坐标轴'
    },
    tooltip: {
        trigger: 'axis',
        formatter: function (params) {
            params = params[0];
            return params.value[0] + ' / ' + params.value[1];
        },
        axisPointer: {
            animation: false
        }
    },
    xAxis: {
        type: 'category',
        splitLine: {
            show: false
        },
        data: date
    },
    yAxis: {
        type: 'value',
        boundaryGap: [0, '100%'],
        splitLine: {
            show: false
        }
    },
    series: [{
        name: '模拟数据',
        type: 'line',
        showSymbol: false,
        hoverAnimation: false,
        data: data
    }]
};

setInterval(function () {
    var _data = randomData();
    data.shift();
    date.shift();
    data.push(_data);
    date.push(_data.value[0])

    myChart.setOption({
        xAxis: {
          data: date  
        },
        series: [{
            data: data
        }]
    });
}, 1000);

运行图片

相关文章

网友评论

      本文标题:关于Echart中动态刷新对X轴秒级刻度的需求和实现

      本文链接:https://www.haomeiwen.com/subject/lxklkxtx.html