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 相关文章推荐
CodeMirror2 IE7/IE8 下面未知运行时错误的解决方法
Mar 29 Javascript
js 表单提交后按钮变灰的实例代码
Aug 16 Javascript
解决用jquery load加载页面到div时,不执行页面js的问题
Feb 22 Javascript
js仿QQ中对联系人向左滑动、滑出删除按钮的操作
Apr 07 Javascript
Bootstrap基本组件学习笔记之缩略图(13)
Dec 08 Javascript
老生常谈combobox和combotree模糊查询
Apr 17 Javascript
Angularjs的启动过程分析
Jul 18 Javascript
vue中使用微信公众号js-sdk踩坑记录
Mar 29 Javascript
100行代码实现vue表单校验功能(小白自编)
Nov 19 Javascript
vue实现移动端图片上传功能
Dec 23 Javascript
JS数组reduce()方法原理及使用技巧解析
Jul 14 Javascript
详解Vue2的diff算法
Jan 06 Vue.js
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
PHP导航下拉菜单的实现如此简单
2013/09/22 PHP
PHP 二维数组根据某个字段排序的具体实现
2014/06/03 PHP
使用phpQuery获取数组的实例
2017/03/13 PHP
学习YUI.Ext 第四天--对话框Dialog的使用
2007/03/10 Javascript
js 与或运算符 || &amp;&amp; 妙用
2009/12/09 Javascript
两个比较有用的Javascript工具函数代码
2010/02/17 Javascript
EXT窗口Window及对话框MessageBox
2011/01/27 Javascript
50个比较实用jQuery代码段
2011/09/18 Javascript
jQuery源码分析-03构造jQuery对象-工具函数
2011/11/14 Javascript
jquery交替变换颜色的三种方法 实例代码
2013/11/19 Javascript
JavaScript中isPrototypeOf函数作用和使用实例
2015/06/01 Javascript
jQuey将序列化对象在前台显示地实现代码(方法总结)
2016/12/13 Javascript
[03:46]DOTA2英雄基础教程 维萨吉
2013/12/11 DOTA
python文件读写操作与linux shell变量命令交互执行的方法
2015/01/14 Python
python编程开发之textwrap文本样式处理技巧
2015/11/13 Python
python常见的格式化输出小结
2016/12/15 Python
pandas带有重复索引操作方法
2018/06/08 Python
利用Pycharm断点调试Python程序的方法
2018/11/29 Python
Centos7 下安装最新的python3.8
2019/10/28 Python
Django2 连接MySQL及model测试实例分析
2019/12/10 Python
python 实现rolling和apply函数的向下取值操作
2020/06/08 Python
Skyscanner加拿大:全球旅行搜索平台
2018/11/19 全球购物
STP协议的主要用途是什么?为什么要用STP
2012/12/20 面试题
大学生个人简历自我评价
2013/11/16 职场文书
身边的榜样活动方案
2014/08/20 职场文书
机关中层领导干部群众路线教育实践活动个人对照检查材料
2014/09/24 职场文书
教师拔河比赛广播稿
2014/10/14 职场文书
2014年卫生工作总结
2014/11/27 职场文书
论文致谢词范文
2015/05/14 职场文书
狂人日记读书笔记
2015/06/30 职场文书
2015年环卫处个人工作总结
2015/07/27 职场文书
家电创业计划书
2019/08/05 职场文书
springboot中一些比较常用的注解总结
2021/06/11 Java/Android
mongodb清除连接和日志的正确方法分享
2021/09/15 MongoDB
pycharm无法安装cv2模块问题
2022/05/20 Python
ORACLE中dbms_output.put_line输出问题的解决过程
2022/06/28 Oracle