解决echarts echarts数据动态更新和dataZoom被重置问题


Posted in Javascript onJuly 20, 2020

1.全局绑定滚轮事件,获得dataZoom最新的位置:

myChart.on('dataZoom',function(event){
   if(event.batch){
   start=event.batch[0].start;
   end=event.batch[0].end;
   }else{
   start=event.start;
   end=event.end;
   };
});

2.把最新的start和end赋值给要更新的option

window.setInterval(function () {
  num=Math.random()*num+100;
 data0.splice(0,1);
 data0.push(num);
 
 option.dataZoom[0].start=start;
 option.dataZoom[0].end=end;
 myChart.setOption(option);  
},3000);

3.echart数据增量刷新还可以用appendData

补充知识:echarts动态添加数据

我就废话不多说了,大家还是直接看代码吧~

<template>
  <!--为echarts准备一个具备大小的容器dom-->
 	<div id="main" style="width: 600px;height: 400px;"></div>
</template>
<script>
  import echarts from 'echarts'
 
  export default {
    name: 'Chart',
    data () {
      return {
        charts: '',
      }
    },
    methods:{
      initLine(id){
        this.charts = echarts.init(document.getElementById(id))
        this.charts.setOption({
          title: {
            text: '动态数据 + 时间坐标轴'
          },
          tooltip: {
            trigger: 'axis',
            formatter: function (params) {
              params = params[0]
              return params.value[0] + ' : ' + params.value[1]
            },
            axisPointer: {
              animation: false
            }
          },
          xAxis: {
            type: 'time',
            splitLine: {
              show: false
            }
          },
          yAxis: {
            type: 'value',
            boundaryGap: [0, '100%'],
            splitLine: {
              show: false
            }
          },
          animation: false
        })
       }
    },
    mounted(){
      this.$nextTick(function() {
        this.initLine('main')
        this.charts.setOption({
          series : [
            {
              name : '模拟数据0',
              type : 'line',
              showSymbol : false,
              hoverAnimation : false,
              data : [['2018-01-02', '3'],['2018-01-05', '4']]
            }
          ]
        })
        
        setTimeout(() => {
          this.charts.appendData({
            seriesIndex:0,
            data : [['2018-01-03', '1'],['2018-01-07', '2']]
          })
        },2000)
        
        setTimeout(() => {
          this.charts.resize();  
        },4000)
 
        setTimeout(() => {
          this.charts.setOption({
            series : [
              {},
              {
                name : '模拟数据1',
                type : 'line',
                showSymbol : false,
                hoverAnimation : false,
                data : [['2018-01-02', '5'],['2018-01-05', '10']]
              }
            ]
          })
          this.charts.appendData({
            seriesIndex:1,
            data : [['2018-01-03', '11'],['2018-01-10', '2']]
          })
        },6000) 
        setTimeout(() => {
          this.charts.resize();  
        },8000)
      })
    }
  }
</script>
<style scoped>
  * {
    margin: 0;
    padding: 0;
    list-style: none;
  }
</style>

补充

主动使用echarts的resize方法改变图表大小:

(opts?: {
  width?: number|string,
  height?: number|string,
  silent?: boolean
})

当在参数中填入宽高,this.echarts.resize({width:300}),dom层必须有一个初始化像素的宽高,百分比的宽高该方法不会生效。

以上这篇解决echarts echarts数据动态更新和dataZoom被重置问题就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
javascript 获取元素位置的快速方法 getBoundingClientRect()
Nov 26 Javascript
javascript面向对象之定义成员方法实例分析
Jan 13 Javascript
Bootstrap每天必学之基础排版
Nov 20 Javascript
iscroll.js的上拉下拉刷新时无法回弹的解决方法
Feb 18 Javascript
全面了解构造函数继承关键apply call
Jul 26 Javascript
简单实现js上传文件功能
Aug 21 Javascript
js实现数组内数据的上移和下移的实例
Nov 14 Javascript
使用vue点击li,获取当前点击li父辈元素的属性值方法
Sep 12 Javascript
解决vue脚手架项目打包后路由视图不显示的问题
Sep 20 Javascript
JavaScript内置对象math,global功能与用法实例分析
Jun 10 Javascript
微信小程序文字显示换行问题
Jul 28 Javascript
使用typescript改造koa开发框架的实现
Feb 04 Javascript
JavaScript如何实现监听键盘输入和鼠标监点击
Jul 20 #Javascript
解决echarts vue数据更新,视图不更新问题(echarts嵌在vue弹框中)
Jul 20 #Javascript
基于Echarts图表在div动态切换时不显示的解决方式
Jul 20 #Javascript
在vue中使用Echarts利用watch做动态数据渲染操作
Jul 20 #Javascript
vue-router之解决addRoutes使用遇到的坑
Jul 19 #Javascript
解决vue+router路由跳转不起作用的一项原因
Jul 19 #Javascript
解决vue项目router切换太慢问题
Jul 19 #Javascript
You might like
PHP代码优化技巧小结
2015/09/29 PHP
CentOS7系统搭建LAMP及更新PHP版本操作详解
2020/03/26 PHP
javascript parseInt 函数分析(转)
2009/03/21 Javascript
不安全的常用的js写法
2009/09/15 Javascript
jquery实现的一个导航滚动效果具体代码
2013/05/27 Javascript
用javascript判断IE版本号简单实用且向后兼容
2013/09/11 Javascript
使用 Node.js 做 Function Test实现方法
2013/10/25 Javascript
JavaScript插件化开发教程 (三)
2015/01/27 Javascript
javascript特效实现——当前时间和倒计时效果的简单实例
2016/07/20 Javascript
原生Javascript和jQuery做轮播图简单例子
2016/10/11 Javascript
Webpack打包字体font-awesome的方法示例
2018/04/26 Javascript
详解SPA中前端路由基本原理与实现方式
2018/09/12 Javascript
JS中验证整数和小数的正则表达式
2018/10/08 Javascript
在 Angular-cli 中使用 simple-mock 实现前端开发 API Mock 接口数据模拟功能的方法
2018/11/28 Javascript
javascript之分片上传,断点续传的实际项目实现详解
2019/09/05 Javascript
JavaScript实现文件下载并重命名代码实例
2019/12/12 Javascript
vue使用echarts画组织结构图
2021/02/06 Vue.js
[03:37]2014DOTA2国际邀请赛 主赛事第一日胜者组TOPPLAY
2014/07/19 DOTA
Python subprocess模块学习总结
2014/03/13 Python
在Python中处理时间之clock()方法的使用
2015/05/22 Python
浅析Python的Django框架中的Memcached
2015/07/23 Python
python实现AES加密和解密
2019/03/27 Python
十分钟搞定pandas(入门教程)
2019/06/21 Python
python 浅谈serial与stm32通信的编码问题
2019/12/18 Python
挪威手表购物网站:Klokker
2016/09/19 全球购物
土耳其新趋势女装购物网站:Addax
2020/01/07 全球购物
大学毕业生最详细的自我评价分享
2013/11/18 职场文书
公司承诺书格式
2014/05/21 职场文书
戒毒悔改检讨书
2014/09/21 职场文书
工作收入住址证明
2014/10/28 职场文书
2014年镇党建工作汇报材料
2014/11/02 职场文书
2014年远程教育工作总结
2014/12/09 职场文书
优秀教师个人总结
2015/02/11 职场文书
财务统计员岗位职责
2015/04/14 职场文书
《怀念母亲》教学反思
2016/02/19 职场文书
Java8 CompletableFuture 异步回调
2022/04/28 Java/Android