echarts - 折线图 - 每秒刷新数据并显示

时间:2019-11-14
本文章向大家介绍echarts - 折线图 - 每秒刷新数据并显示,主要包括echarts - 折线图 - 每秒刷新数据并显示使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
function randomData() {
    now = new Date(+now + oneDay);
     value = value + Math.random() * 21 - 10;
        var valueName = now.getFullYear() + '/' + (now.getMonth() + 1) + '/' + now.getDate() 
        + ' ' + (now.getHours() >= 10 ? now.getHours() : '0' + now.getHours()) + ':' 
        + (now.getMinutes() >= 10 ? now.getMinutes() : '0' + now.getMinutes())
        + ':' + (now.getSeconds() >= 10 ? now.getSeconds() : '0' + now.getSeconds());
        
        return {
            name: now.toString(),
            value: [
                valueName,
                Math.round(value)
            ]
        }
}

var data = [];
var now = +new Date();
var oneDay = 1000;
//var oneDay = 24 * 3600 * 1000;
var value = Math.random() * 1000;
for (var i = 0; i < 60; i++) {
    data.push(randomData());
}

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

setInterval(function () {

    for (var i = 0; i < 1; i++) {
        data.shift();
        data.push(randomData());
    }
    var temp = 59;
    //alert(data[999].name)
    myChart.setOption({
        series: [{
            data: data,
            markLine: {
                data: [
                    [{
                        symbol: 'none',
                        x: '95%',
                        yAxis: data[temp].value[1]
                    }, {
                        symbol: 'circle',
                        label: {
                            normal: {
                                position: 'start',
                                formatter: '实时数据\n{c}'
                            }
                        },
                        name: '实时数据',
                        value: data[temp].value[1],
                        xAxis: data[temp].value[0],
                        yAxis: data[temp].value[1]
                    }]
                ]
            }
        }]
    });
}, 1000);

原文地址:https://www.cnblogs.com/lsgsanxiao/p/11856117.html