• echarts实时曲线【转】


    echarts官网上的动态加载数据bug被我解决

     

    又是昨天,为什么昨天发生了这么多事。没办法,谁让我今天没事可做呢。

    昨天需求是动态加载数据,画一个实时监控的折线图。大概长这样。

    我屁颠屁颠的把代码copy过来,一运行,caocaocao~bug出现了。这难道是站长为了考研我?本着搬运工的精神,我开始百度起来。

    最近可能百度忙着打官司,搜到的全是陈年烂谷。没办法,自己弄吧。可是项目主管不懂啊,他以为这个东西很简单嘛,网上一搜一大把,一个劲儿催。我就cltm了。但是问题还是要解决的。官网的错误代码我就不占了,有兴趣的可以到这里看http://echarts.baidu.com/demo.html#dynamic-data2

    下面贴上我的代码,还有说明

    1.首先官网上的代码没有实例化。

    1
    var myChart = echarts.init(document.getElementById('z_line2'));

    2.核心配置bug就是这里,修改成这样就好了

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    原版
    setInterval(function () {
     
        for (var i = 0; i < 5; i++) {
            data.shift();
            data.push(randomData());
        }
     
        myChart.setOption({
            series: [{
                data: data
            }]
        });
    }, 1000);
    我的
    setInterval(function () {
                for (var i = 0; i < 5; i++) {
                    //data.shift();
                    data.push(randomData());
                }
                //data.push(randomData());
                myChart.setOption(option);//核心价值观,更快更高更强!
            }, 1000);

    最后附上完整的:

    //开始❀折线图
    function randomData() {
    now = new Date(+now + oneDay);
    value = value + Math.random() * 21 - 10;
    return {
    name: now.toString(),
    value: [
    [now.getFullYear(), now.getMonth() + 1, now.getDate()].join('/'),
    Math.round(value)
    ]
    }
    }

    var data = [];
    var now = +new Date(1997, 9, 3);
    var oneDay = 24 * 3600 * 1000;
    var value = Math.random() * 1000;
    var option='';
    /*for (var i = 0; i < 1000; i++) {
    data.push(randomData());
    }*/
    data.push(randomData());
    var myChart = echarts.init(document.getElementById('z_line2'));
    option = {
    title: {
    bottom:0,
    left:'center',
    text: '现价',
    textStyle:{
    color:'#5e5e5e'
    }
    },
    tooltip: {
    trigger: 'axis',
    formatter: function (params) {
    console.log(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
    },
    nameGap:3600,
    axisLine: {lineStyle: {color: '#5e5e5e'}},
    axisLabel: {//坐标轴文本样式
    textStyle: {
    color: "#5e5e5e",
    },
    }
    },
    yAxis: {
    type: 'value',
    boundaryGap: [0, '100%'],
    splitLine: {
    show: false
    },
    axisLine: {lineStyle: {color: '#5e5e5e'}},
    axisLabel: {//坐标轴文本样式
    textStyle: {
    color: "#5e5e5e",
    },
    }
    },
    series: [{
    name: '模拟数据',
    type: 'line',
    showSymbol: false,
    hoverAnimation: false,
    data: data
    }],
    dataZoom:{
    type:'inside'
    },
    backgroundColor:'#ccc'
    };

    setInterval(function () {
    for (var i = 0; i < 5; i++) {
    //data.shift();
    data.push(randomData());
    }
    //data.push(randomData());
    myChart.setOption(option);
    }, 1000);
  • 相关阅读:
    juypter4.4.0 自动补全
    Pytorch安装教程(Windows)
    编写你的第一个油猴脚本
    油猴(Tampermonkey)安装教程
    解决Linux系统下每次打开终端自动进入base环境
    Pytorch安装教程(Linux)
    Miniconda软件安装教程(Linux)
    解决vscode中使用pytorch时pylint报错Module torch has no xxx member
    解决pytorch报错ImportError: numpy.core.multiarray failed to import
    Miniconda软件安装教程(Windows)
  • 原文地址:https://www.cnblogs.com/cinemaparadiso/p/10315090.html
Copyright © 2020-2023  润新知