vue+echarts实现动态绘制图表及异步加载数据的方法


Posted in Javascript onOctober 17, 2018

前言

背景:vue写的后台管理,需要将表格数据绘制成图表(折线图,柱状图),图表数据都是通过接口请求回来的。

安装

cnpm install echarts --s   (我这里用了淘宝镜像,不知道同学自行百度)

实例化

   在已有的项目中下载好了echarts 之后,可以打开官方文档,但是我觉得官方文档对于实例化介绍的不够清晰,这也是我为什么在这么多的文章中还要写的原因,前辈写的太模糊了,我决定好好给后来人,需要在项目中引用图表的人,一些实用,快捷的东西。

官方文档:http://echarts.baidu.com/tutorial.html#5%20%E5%88%86%E9%92%9F%E4%B8%8A%E6%89%8B%20ECharts

不废话,贴代码

1.在需要用图表的地方引入 例如:hello.js

    import echarts from 'echarts'

2.hello.vue  中写个容器

<div id='myChart' style='width:600px;height:600px'>
</div>

3.在hello.js

export default {
 name: 'hello',
 data () {
  return {
   msg: 'Welcome to Your Vue.js App'
  }
 },
 mounted(){
  this.drawLine();
 },
 methods: {
  drawLine(){
    // 基于准备好的dom,初始化echarts实例
    let myChart = this.$echarts.init(document.getElementById('myChart'))
    // 绘制图表
    myChart.setOption({
      title: { text: '在Vue中使用echarts' },
      tooltip: {},
      xAxis: {
        data: ["衬衫","羊毛衫","雪纺衫","裤子","高跟鞋","袜子"]
      },
      yAxis: {},
      series: [{
        name: '销量',
        type: 'bar',
        data: [5, 20, 36, 10, 10, 20]
      }]
    });
  }
 }
}

    这样就调用好了视力了,在页面刷新就可以了

效果如图:

vue+echarts实现动态绘制图表及异步加载数据的方法

这样是很简单的方法,嗯重点来了,我的数据又不是写死的~数据都是后台给我的呀(官方,还真的没有怎么说,示例也是ajax异步请求的)

项目一开始是有完整的一个表格数据,也就是我要把表格数据绘制成图表,还有一堆的筛选条件,有点懵逼~

感觉问题很多啊,给我五分钟,分析分析,分解分解一下

1.数据我都是有的,我需要绘制四条折线,表格数据循环复制给新的四个数组(筛选条件一变,四组数据也跟着变)

2.横坐标也是动态,项目是时间(刚开始我还想偏了,自动填充日期的那种),表格的第一行就是日期,同样用新数组储存

3.数据重新请求了,我的图表也要跟着变才对呀(图表重新绘制)

再次贴代码(废话再多,不如一行代码)

1.在调用筛选条件的方法那里,创建五个新的数组(四条折线),横坐标(日期)

    这里没有代码

2.横坐标动态的:

xAxis: {
     type: 'category',
     boundaryGap: false,
     data: this.xData, //xData 就是日期这个数组
   },

3.series (四条折线的数据)

series : [{

name:this.tooltipData[0],


type:'line',


stack: '总量',


data:this.new_userData,

},

{


name:this.tooltipData[1],


type:'line',


stack: '总量',


data:this.new_deviceData,

},

{


name:this.tooltipData[2],


type:'line',


stack: '总量',
 

data:this.active_userData,

},

{


name:this.tooltipData[3],


type:'line',


stack: '总量',


data:this.active_deviceData,

}]

4.随着筛选数据,重新绘制图表

    调用筛选条件方法的时候再调用这个实例化 drawline 方法就可以了

    this.drawLine();

总结

以上所述是小编给大家介绍的vue+echarts实现动态绘制图表及异步加载数据的方法,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!

Javascript 相关文章推荐
使一个函数作为另外一个函数的参数来运行的javascript代码
Aug 13 Javascript
Extjs学习过程中新手容易碰到的低级错误积累
Feb 11 Javascript
JS 类型转换常见方法小结
May 31 Javascript
ASP.NET jQuery 实例4(复制TextBox的文本到本地剪贴板上)
Jan 13 Javascript
JavaScript函数中关于valueOf和toString的理解
Jun 14 Javascript
Angular 常用指令实例总结整理
Dec 13 Javascript
基于jQuery实现数字滚动效果
Jan 16 Javascript
js 函数式编程学习笔记
Mar 25 Javascript
ES6中javascript实现函数绑定及类的事件绑定功能详解
Nov 08 Javascript
JavaScript代码异常监控实现过程详解
Feb 17 Javascript
JS原型prototype和__proto__用法实例分析
Mar 14 Javascript
npm全局环境变量配置详解
Dec 15 Javascript
手把手教你写一个微信小程序(推荐)
Oct 17 #Javascript
微信小程序开发之tabbar图标和颜色的实现
Oct 17 #Javascript
解决百度Echarts图表坐标轴越界的方法
Oct 17 #Javascript
vue实现循环切换动画
Oct 17 #Javascript
element-ui upload组件多文件上传的示例代码
Oct 17 #Javascript
bootstrap table合并行数据并居中对齐效果
Oct 17 #Javascript
IE9 elementUI文件上传的问题解决
Oct 17 #Javascript
You might like
php面向对象全攻略 (七) 继承性
2009/09/30 PHP
php smarty模版引擎中的缓存应用
2009/12/02 PHP
PHP、Python和Javascript的装饰器模式对比
2015/02/03 PHP
PHP使用array_merge重新排列数组下标的方法
2015/07/22 PHP
CI框架中redis缓存相关操作文件示例代码
2016/05/17 PHP
input的focus方法使用
2010/03/13 Javascript
C#中TrimStart,TrimEnd,Trim在javascript上的实现
2011/01/17 Javascript
创建公共调用 jQuery Ajax 带返回值
2012/08/01 Javascript
通过JS动态创建一个html DOM元素并显示
2014/10/15 Javascript
分享33个jQuery与CSS3实现的绚丽鼠标悬停效果
2014/12/15 Javascript
初步使用bootstrap快速创建页面
2016/03/03 Javascript
JavaScript定义函数的三种实现方法
2017/09/23 Javascript
javascript与PHP动态往类中添加方法对比
2018/03/21 Javascript
快速搭建Node.js(Express)用户注册、登录以及授权的方法
2019/05/09 Javascript
jquery选择器和属性对象的操作实例分析
2020/01/10 jQuery
vue实现瀑布流组件滑动加载更多
2020/03/10 Javascript
使用Angular9和TypeScript开发RPG游戏的方法
2020/03/25 Javascript
jQuery 隐藏/显示效果函数用法实例分析
2020/05/20 jQuery
python实现的一只从百度开始不断搜索的小爬虫
2013/08/13 Python
python有证书的加密解密实现方法
2014/11/19 Python
Python中使用摄像头实现简单的延时摄影技术
2015/03/27 Python
Python中使用logging模块打印log日志详解
2015/04/05 Python
Python中用字符串调用函数或方法示例代码
2017/08/04 Python
Python实现对文件进行单词划分并去重排序操作示例
2018/07/10 Python
python常用函数与用法示例
2019/07/02 Python
Django1.11配合uni-app发起微信支付的实现
2019/10/12 Python
python3中datetime库,time库以及pandas中的时间函数区别与详解
2020/04/16 Python
Python+Opencv身份证号码区域提取及识别实现
2020/08/25 Python
jupyter使用自动补全和切换默认浏览器的方法
2020/11/18 Python
基于Html5实现的语音搜索功能
2019/05/13 HTML / CSS
AmazeUI的JS表单验证框架实战示例分享
2020/08/21 HTML / CSS
金牌葡萄酒俱乐部:Gold Medal Wine Club
2017/11/02 全球购物
珍珠鸟教学反思
2014/02/01 职场文书
《雨霖铃》教学反思
2014/02/22 职场文书
优秀学生主要事迹怎么写
2015/11/04 职场文书
《我的长生果》教学反思
2016/02/20 职场文书