解决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 相关文章推荐
DHTML 中的绝对定位
Nov 26 Javascript
Javascript在IE或Firefox下获取鼠标位置的代码
Dec 18 Javascript
JS复制到剪贴板示例代码
Oct 30 Javascript
js点击事件链接的问题解决
Apr 25 Javascript
jQuery 删除/替换DOM元素的几种方式
May 20 Javascript
浅谈JSON.parse()和JSON.stringify()
Jul 14 Javascript
vue父子组件的数据传递示例
Mar 07 Javascript
vue中for循环更改数据的实例代码(数据变化但页面数据未变)
Sep 15 Javascript
解决IE11 vue +webpack 项目中数据更新后页面没有刷新的问题
Sep 25 Javascript
node.js监听文件变化的实现方法
Apr 17 Javascript
Vue实现页面添加水印功能
Nov 09 Javascript
Typescript3.9 常用新特性一览(推荐)
May 14 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/03/17 PHP
PHP信号量基本用法实例详解
2016/02/12 PHP
Zend Framework实现Zend_View集成Smarty模板系统的方法
2016/03/05 PHP
php版本CKEditor 4和CKFinder安装及配置方法图文教程
2019/06/05 PHP
一款js和css代码压缩工具[附JAVA环境配置方法]
2010/04/16 Javascript
Ajax搜索结果页面下方的分页按钮的生成
2012/04/05 Javascript
CheckBoxList多选样式jquery、C#获取选择项
2013/09/06 Javascript
jQuery实现点击文本框弹出热门标签的提示效果
2013/11/17 Javascript
使用JS获取当前地理位置方法汇总
2014/12/18 Javascript
js实现文本框选中的方法
2015/05/26 Javascript
jQuery animate easing使用方法图文详解
2016/06/17 Javascript
功能强大的Bootstrap组件(结合js)
2016/08/03 Javascript
JS获取一个未知DIV高度的方法
2016/08/09 Javascript
Bootstrap 过渡效果Transition 模态框(Modal)
2017/03/17 Javascript
Vue2.0设置全局样式(less/sass和css)
2017/11/18 Javascript
使用VUE+iView+.Net Core上传图片的方法示例
2019/01/04 Javascript
vue中beforeRouteLeave实现页面回退不刷新的示例代码
2019/11/01 Javascript
如何运行Python程序的方法
2013/04/21 Python
pygame播放音乐的方法
2015/05/19 Python
python更新列表的方法
2015/07/28 Python
python 实现tar文件压缩解压的实例详解
2017/08/20 Python
Python爬虫小技巧之伪造随机的User-Agent
2018/09/13 Python
python实现多进程代码示例
2018/10/31 Python
Django JWT Token RestfulAPI用户认证详解
2019/01/23 Python
为何人工智能(AI)首选Python?读完这篇文章你就知道了(推荐)
2019/04/06 Python
python实现读取excel文件中所有sheet操作示例
2019/08/09 Python
python GUI库图形界面开发之PyQt5下拉列表框控件QComboBox详细使用方法与实例
2020/02/27 Python
设置jupyter中DataFrame的显示限制方式
2020/04/12 Python
python 浮点数四舍五入需要注意的地方
2020/08/18 Python
Canon佳能美国官方商店:购买数码相机、数码单反相机、镜头和打印机
2016/11/15 全球购物
Easy Spirit官网:美国休闲鞋履中的代表品牌
2019/04/12 全球购物
商务专员岗位职责
2013/11/23 职场文书
企业理念标语
2014/06/09 职场文书
数据结构课程设计心得体会
2016/01/15 职场文书
那些美到让人窒息的诗句,值得你收藏!
2019/08/20 职场文书
golang协程池模拟实现群发邮件功能
2021/05/02 Golang