zoukankan      html  css  js  c++  java
  • echarts官网上的动态加载数据bug被我解决。咳咳/。

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

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

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

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

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

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

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

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

    原版
    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);
  • 相关阅读:
    Ajax beforeSend和complete 方法
    CLR Via CSharp读书笔记(17):委托
    linux上部署Django项目(Apache+mod_wsgi+django)
    用Apache+mod_wsgi部署python程序 作者:leven | 日期20101129 00:09:37
    VirtualBox桥接网络的简单配置,让虚拟机直接访问网络
    Django and mod_wsgi deploy example
    How to use Django with FastCGI, SCGI, or AJP¶
    Fedora 15 下编译安装apache
    Change Ubuntu Server from DHCP to a Static IP Address
    How to Verify a CentOS Linux Server is 32 Bit or 64 Bit
  • 原文地址:https://www.cnblogs.com/webSong/p/7422860.html
Copyright © 2011-2022 走看看