vue+echarts实现动态折线图的方法与注意


Posted in Javascript onSeptember 01, 2020

之前公司有个绘制实时盈利率折线图的需求,实现的还不错,今天来分享下vue+echarts实现动态折线图的方法。

实现代码

<template>
 <div id="myChart"></div>
</template>

<script>
import echarts from 'echarts'
export default {
 name: 'DynamicLineChart',
 data () {
  return {
  	// 实时数据数组
   date: [],
   yieldRate: [],
   yieldIndex: [],
   // 折线图echarts初始化选项
   echartsOption: {
    legend: {
     data: ['实际收益率', '大盘收益率'],
    },
    xAxis: {
     name: '时间',
     nameTextStyle: {
      fontWeight: 600,
      fontSize: 18
     },
     type: 'category',
     boundaryGap: false,
     data: this.date,	// 绑定实时数据数组
    },
    yAxis: {
     name: '实际收益率',
     nameTextStyle: {
      fontWeight: 600,
      fontSize: 18
     },
     type: 'value',
     scale: true,
     boundaryGap: ['15%', '15%'],
     axisLabel: {
      interval: 'auto',
      formatter: '{value} %'
     }
    },
    tooltip: {
     trigger: 'axis',
    },
    series: [
     {
      name:'实际收益率',
      type:'line',
      smooth: true,
      data: this.yieldRate,	// 绑定实时数据数组
     },
     {
      name:'大盘收益率',
      type:'line',
      smooth: true,
      data: this.yieldIndex,	// 绑定实时数据数组
     }
    ]
   }
  }
 },
 mounted () {
  this.myChart = echarts.init(document.getElementById('myChart'), 'light');	// 初始化echarts, theme为light
  this.myChart.setOption(this.echartsOption);	// echarts设置初始化选项
  setInterval(this.addData, 3000);	// 每三秒更新实时数据到折线图
 },
 methods: {
 	// 获取当前时间
  getTime : function() {	
   var ts = arguments[0] || 0;
   var t, h, i, s;
   t = ts ? new Date(ts * 1000) : new Date();
   h = t.getHours();
   i = t.getMinutes();
   s = t.getSeconds();
   // 定义时间格式
   return (h < 10 ? '0' + h : h) + ':' + (i < 10 ? '0' + i : i) + ':' + (s < 10 ? '0' + s : s);
  },
  // 添加实时数据
  addData : function() {
  	// 从接口获取数据并添加到数组
   this.$axios.get('url').then((res) => {
    this.yieldRate.push((res.data.actualProfitRate * 100).toFixed(3));
    this.yieldIndex.push((res.data.benchmarkProfitRate * 100).toFixed(3));
    this.date.push(this.getTime(Math.round(new Date().getTime() / 1000)));
    // 重新将数组赋值给echarts选项
    this.echartsOption.xAxis.data = this.date;
    this.echartsOption.series[0].data = this.yieldRate;
    this.echartsOption.series[1].data = this.yieldIndex;
    this.myChart.setOption(this.echartsOption);
   });
  }
 }
}
</script>

<style>
// 设定宽高,不然超出windows会显示不出来
#myChart{
 width: 100%;
 height: 500px;
 margin: 0 auto;
}
</style>

要注意的有三点:

  • mounted中init并setOption初始化echarts
  • echartsOption里的data绑定数组
  • setInterval中要更新数组并重新将数组赋值给echarts选项

效果图

vue+echarts实现动态折线图的方法与注意

总结

到此这篇关于vue+echarts实现动态折线图的文章就介绍到这了,更多相关vue+echarts动态折线图内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Javascript 相关文章推荐
jQuery.validate 常用方法及需要注意的问题
Mar 20 Javascript
JS实现清除指定cookies的方法
Sep 20 Javascript
js中匿名函数的创建与调用方法分析
Dec 19 Javascript
浅谈JavaScript中的Math.atan()方法的使用
Jun 14 Javascript
angularjs学习笔记之简单介绍
Sep 26 Javascript
AngularJs表单验证实例详解
May 30 Javascript
AngularJS ngModel实现指令与输入直接的数据通信
Sep 21 Javascript
浅谈vue生命周期共有几个阶段?分别是什么?
Aug 07 Javascript
javascript实现点击按钮切换轮播图功能
Sep 23 Javascript
解决vue打包 npm run build-test突然不动了的问题
Nov 13 Javascript
vue中父子组件的参数传递和应用示例
Jan 04 Vue.js
AJAX实现指定部分页面刷新效果
Oct 16 Javascript
node.js 如何监视文件变化
Sep 01 #Javascript
JS JQuery获取data-*属性值方法解析
Sep 01 #jQuery
谈谈node.js中的模块系统
Sep 01 #Javascript
JavaScript浅层克隆与深度克隆示例详解
Sep 01 #Javascript
VUE子组件向父组件传值详解(含传多值及添加额外参数场景)
Sep 01 #Javascript
vue离开当前页面触发的函数代码
Sep 01 #Javascript
Vue 实现监听窗口关闭事件,并在窗口关闭前发送请求
Sep 01 #Javascript
You might like
用PHPdig打造属于你自己的Google[图文教程]
2007/02/14 PHP
php使用parse_url和parse_str解析URL
2015/02/22 PHP
PHP基于ICU扩展intl快速实现汉字转拼音及按拼音首字母分组排序的方法
2017/05/03 PHP
解决遍历时Array.indexOf产生的性能问题
2012/07/03 Javascript
jquery按回车提交数据的代码示例
2013/11/05 Javascript
javascript实现数字+字母验证码的简单实例
2014/02/10 Javascript
js统计页面的来访次数实现代码
2014/05/09 Javascript
js获取窗口相对于屏幕左边和上边的位置坐标
2014/05/15 Javascript
ie8模式下click无反应点击option无反应的解决方法
2014/10/11 Javascript
浅谈$(document)和$(window)的区别
2015/07/15 Javascript
纯js实现手风琴效果
2020/04/17 Javascript
JavaScript实现显示函数调用堆栈的方法
2016/04/21 Javascript
Vue.js每天必学之过渡与动画
2016/09/06 Javascript
AngularJS实现与Java Web服务器交互操作示例【附demo源码下载】
2016/11/02 Javascript
JavaScript实现分页效果
2017/03/28 Javascript
JS中精巧的自动柯里化实现方法
2017/12/12 Javascript
详解ajax的data参数错误导致页面崩溃
2018/04/30 Javascript
JavaScript事件发布/订阅模式原理与用法分析
2018/08/21 Javascript
nodejs微信开发之授权登录+获取用户信息
2019/03/17 NodeJs
用Node写一条配置环境的指令
2019/11/14 Javascript
javascript绘制简单钟表效果
2020/04/07 Javascript
关于angular引入ng-zorro的问题浅析
2020/09/09 Javascript
[45:32]Liquid vs LGD 2018国际邀请赛淘汰赛BO3 第二场 8.23
2018/08/24 DOTA
python数据结构之列表和元组的详解
2017/09/23 Python
Python运行不显示DOS窗口的解决方法
2018/10/22 Python
python3 实现对图片进行局部切割的方法
2018/12/05 Python
python使用pipeline批量读写redis的方法
2019/02/18 Python
python获取Linux发行版名称
2019/08/30 Python
tensorflow之并行读入数据详解
2020/02/05 Python
关于box-sizing的全面理解
2016/07/28 HTML / CSS
浪漫婚礼主持词
2014/03/14 职场文书
四群教育工作实施方案
2014/03/26 职场文书
《棉鞋里的阳光》教学反思
2014/04/24 职场文书
2019餐饮行业创业计划书!
2019/06/27 职场文书
python字符串拼接.join()和拆分.split()详解
2021/11/23 Python
Win11如何查看显卡型号 Win11查看显卡型号的方法
2022/08/14 数码科技