解决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 相关文章推荐
完美兼容各大浏览器的jQuery仿新浪图文淡入淡出间歇滚动特效
Nov 12 Javascript
jQuery中live()方法用法实例
Jan 19 Javascript
jQuery子窗体取得父窗体元素的方法
May 11 Javascript
JS访问SWF的函数用法实例
Jul 01 Javascript
jquery制作属于自己的select自定义样式
Nov 23 Javascript
JavaScript模拟数组合并concat
Mar 06 Javascript
Bootstrap~多级导航(级联导航)的实现效果【附代码】
Mar 08 Javascript
Node.js使用Express.Router的方法
Nov 14 Javascript
基于百度地图api清除指定覆盖物(Overlay)的方法
Jan 26 Javascript
Less 安装及基本用法
May 05 Javascript
15个顶级开源JavaScript框架和库
Oct 10 Javascript
Vue中图片Src使用变量的方法
Oct 30 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环境配置 php5 mysql5 apache2 phpmyadmin安装与配置
2006/11/17 PHP
php+mysql开源XNA 聚合程序发布 下载
2007/07/13 PHP
php开发过程中关于继承的使用方法分享
2011/06/17 PHP
php判断/计算闰年的方法小结【三种方法】
2019/07/06 PHP
javascript 面向对象全新理练之原型继承
2009/12/03 Javascript
js实现touch移动触屏滑动事件
2015/04/17 Javascript
jQuery实现弹出窗口中切换登录与注册表单
2015/06/05 Javascript
javascript中setTimeout使用指南
2015/07/26 Javascript
论Bootstrap3和Foundation5网格系统的异同
2016/05/16 Javascript
浅谈Sublime Text 3运行JavaScript控制台
2016/06/06 Javascript
JS中常用的输出方式(五种)
2016/06/12 Javascript
javascript简单实现跟随滚动条漂浮的返回顶部按钮效果
2016/08/19 Javascript
Map.vue基于百度地图组件重构笔记分享
2017/04/17 Javascript
js模拟百度模糊搜索的实例
2017/08/04 Javascript
使用JS代码实现俄罗斯方块游戏
2018/08/03 Javascript
puppeteer库入门初探
2019/01/09 Javascript
element-ui组件中input等的change事件中传递自定义参数
2019/05/22 Javascript
[00:35]TI7不朽珍藏III——寒冰飞龙不朽展示
2017/07/15 DOTA
Python中将字典转换为列表的方法
2016/09/21 Python
Python结巴中文分词工具使用过程中遇到的问题及解决方法
2017/04/15 Python
使用Python爬取最好大学网大学排名
2018/02/24 Python
python3 判断列表是一个空列表的方法
2018/05/04 Python
django用户登录和注销的实现方法
2018/07/16 Python
判断python字典中key是否存在的两种方法
2018/08/10 Python
Python找出微信上删除你好友的人脚本写法
2018/11/01 Python
利用Python实现Shp格式向GeoJSON的转换方法
2019/07/09 Python
廉政教育心得体会
2014/01/01 职场文书
竞选班长的演讲稿
2014/04/24 职场文书
电力安全事故反思
2014/04/27 职场文书
党员“四风”方面存在问题及整改措施
2014/09/24 职场文书
《改造我们的学习》心得体会
2014/11/07 职场文书
廉政承诺书2015
2015/04/28 职场文书
2016年教师师德师风承诺书
2016/03/25 职场文书
2019年大学毕业生个人自我鉴定范文大全
2019/03/21 职场文书
python实现股票历史数据可视化分析案例
2021/06/10 Python
Echarts如何重新渲染实例详解
2022/05/30 Javascript