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 相关文章推荐
asp.net+jquery滚动滚动条加载数据的下拉控件
Jun 25 Javascript
JavaScript类库D
Oct 24 Javascript
JavaScript 原型链学习总结
Oct 29 Javascript
分享27款非常棒的jQuery 表单插件
Mar 28 Javascript
如何用JavaScript动态呼叫函数(两种方式)
May 03 Javascript
理解jQuery stop()方法
Nov 21 Javascript
jQuery实现气球弹出框式的侧边导航菜单效果
Sep 22 Javascript
React 组件间的通信示例
Jun 14 Javascript
在Vue组件中获取全局的点击事件方法
Sep 06 Javascript
angular4强制刷新视图的方法
Oct 09 Javascript
React手稿之 React-Saga的详解
Nov 12 Javascript
vue实现Excel文件的上传与下载功能的两种方式
Jun 28 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
PHP similar_text 字符串的相似性比较函数
2010/05/26 PHP
PHP安全配置详细说明
2011/09/26 PHP
在windows服务器开启php的gd库phpinfo中未发现
2013/01/13 PHP
Thinkphp5框架实现图片、音频和视频文件的上传功能详解
2019/08/27 PHP
《JavaScript高级程序设计》阅读笔记(二) ECMAScript中的原始类型
2012/02/27 Javascript
jQuery点击后一组图片左右滑动的实现代码
2012/08/16 Javascript
jquery弹出关闭遮罩层实例
2013/08/06 Javascript
javascript + jquery实现定时修改文章标题
2014/03/19 Javascript
基于JavaScript实现简单的随机抽奖小程序
2016/01/05 Javascript
Javascript生成全局唯一标识符(GUID,UUID)的方法
2016/02/27 Javascript
jquery实现输入框实时输入触发事件代码
2016/12/21 Javascript
JavaScript实现事件的中断传播和行为阻止方法示例
2017/01/20 Javascript
Vue自定义图片懒加载指令v-lazyload详解
2020/12/31 Javascript
Python爬虫实例爬取网站搞笑段子
2017/11/08 Python
使用Python批量修改文件名的代码实例
2019/01/24 Python
python的mysql数据库建立表与插入数据操作示例
2019/09/30 Python
opencv python如何实现图像二值化
2020/02/03 Python
在Sublime Editor中配置Python环境的详细教程
2020/05/03 Python
Python+Opencv身份证号码区域提取及识别实现
2020/08/25 Python
html5 更新图片颜色示例代码
2014/07/29 HTML / CSS
amazeui 验证按钮扩展的实现
2020/08/21 HTML / CSS
英国独特礼物想法和个性化礼物网站:notonthehighstreet.com
2018/04/16 全球购物
初三政治教学反思
2014/01/30 职场文书
yy婚礼主持词
2014/03/14 职场文书
《金孔雀轻轻跳》教学反思
2014/04/20 职场文书
小学生节约用水倡议书
2014/05/15 职场文书
公司年底活动方案
2014/08/17 职场文书
个人自查自纠材料
2014/10/14 职场文书
晚会开幕词
2015/01/28 职场文书
党员干部廉洁自律承诺书
2015/04/28 职场文书
2015年为民办实事工作总结
2015/05/26 职场文书
开业庆典嘉宾致辞
2015/08/01 职场文书
有关浪费资源的建议书
2015/09/14 职场文书
党员干部学习三严三实心得体会
2016/01/05 职场文书
争做文明公民倡议书
2019/06/24 职场文书
Win11自动黑屏怎么办 Win11自动黑屏设置教程
2022/07/15 数码科技