echarts5.0使用动态柱形图用定时器限定次数vue

Posted Afololer

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了echarts5.0使用动态柱形图用定时器限定次数vue相关的知识,希望对你有一定的参考价值。

<style scoped>
  #chart_example
    width: 50%;
    height: 500px;
  
</style>
<template>
  <div  >
    <h2>vue中插入Echarts示例</h2>
    <div id="chart_example">

    </div>

  </div>
</template>
<script>
  import * as echarts from 'echarts'
  //import world from '../node_modules/echarts/map/js/world.js'
  // import '../../node_modules/echarts/map/js/china.js' // 引入中国地图数据

  export default 
    data() 
      return 
    ,

    mounted() 
      let cnt = 0
      var timeData = [];
      var now = new Date("February 27, 2020 11:13:00");
      Date.prototype.getMonthDay = function()
        return (this.getMonth() + 1) + '.' + this.getDate();
      
      timeData.push(now.getMonthDay());
      for(var i = 0 ; i < 2 ; i ++)
        now.setDate(now.getDate() + 1);

        timeData.push(now.getMonthDay())
      
      const data = [];
      for (let i = 0; i < 5; ++i) 
        data.push(Math.round(Math.random() * 200));
      
      let myChart = echarts.init(document.getElementById('chart_example'),'dark');

      let option = 
                xAxis: 
                  max: 'dataMax'
                ,
                yAxis: 
                  type: 'category',
                  data: ['A', 'B', 'C', 'D', 'E'],
                  inverse: true,
                  animationDuration: 300,
                  animationDurationUpdate: 300,
                  max: 2 // only the largest 3 bars will be displayed
                ,
                series: [
                  
                    realtimeSort: true,
                    name: 'X',
                    type: 'bar',
                    data: data,
                    label: 
                      show: true,
                      position: 'right',
                      valueAnimation: true
                    
                  
                ],
                legend: 
                  show: true
                ,
                animationDuration: 0,
                animationDurationUpdate: 3000,
                animationEasing: 'linear',
                animationEasingUpdate: 'linear'
              ;
      function run() 
        for (var i = 0; i < data.length; ++i) 
          if (Math.random() > 0.9) 
            data[i] += Math.round(Math.random() * 2000);
           else 
            data[i] += Math.round(Math.random() * 200);
          
        
        myChart.setOption(
          series: [
            
              type: 'bar',
              data
            
          ]
        );
      
      setTimeout(function () 
        run();
      , 0);
      // function sleep(millisecond) 
      //   return new Promise(resolve => 
      //     setTimeout(() => 
      //       resolve()
      //     , millisecond)
      //   )
      // 
     //alert(timeData.length)
      let myvar = setInterval(function () 
        if(cnt>timeData.length)
        
          clearInterval(myvar)
        

        run();
        cnt++;
      , 3000); //次数为timeData的长
      myChart.setOption(option)

      //建议加上以下这一行代码,不加的效果图如下(当浏览器窗口缩小的时候)。超过了div的界限(红色边框)
      window.addEventListener('resize',function() myChart.resize());
    ,
    methods: ,
    watch: ,
    created() 

    

  
</script>

可以根据指定天数动态更新数据

注意
使用时如果echarts不是5.0版本,要升级到5.0
同时

import echarts from "echarts";

更换为

  import * as echarts from 'echarts'

由于是动态的,无法截图,可以参考官方示例
https://echarts.apache.org/examples/zh/editor.html?c=bar-race

以上是关于echarts5.0使用动态柱形图用定时器限定次数vue的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 Extjs 动态改变柱形图的颜色?

如何用MATLAB做双纵坐标图?其中一条是折线图,另一个是柱形图,还有我想做多子图的

如何让java利用POI导出excel表,并在Excel表中根据表格的数据生成柱形图。要求柱形图是动态的。

echarts怎么动态添加多条柱形图

HighchartsAJAXJSONJQuery实现动态数据交互显示图表柱形图

R语言动态交互绘图|plotly包-交互式柱形图