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 相关文章推荐
extjs 学习笔记(三) 最基本的grid
Oct 15 Javascript
jquery $.ajax各个事件执行顺序
Oct 15 Javascript
客户端限制只能上传jpg格式图片的js代码
Dec 09 Javascript
当鼠标滑过文本框自动选中输入框内容的JS代码分享
Nov 26 Javascript
jquery库文件略庞大用纯js替换jquery的方法
Aug 12 Javascript
使用three.js 画渐变的直线
Jun 05 Javascript
addeventlistener监听scroll跟touch(实例讲解)
Aug 04 Javascript
js数组常用最重要的方法
Feb 04 Javascript
vue轮播图插件vue-concise-slider的使用
Mar 13 Javascript
微信小程序实现的一键连接wifi功能示例
Apr 24 Javascript
基于vue和websocket的多人在线聊天室
Feb 01 Javascript
微信小程序实现上传照片代码实例解析
Aug 04 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
超级简单的发送邮件程序
2006/10/09 PHP
Discuz!5的PHP代码高亮显示插件(黑暗中的舞者更新)
2007/01/29 PHP
php中获得视频时间总长度的另一种方法
2011/09/15 PHP
PHP使用CURL模拟登录的方法
2015/07/08 PHP
php对象工厂类完整示例
2018/08/09 PHP
jQuery 注意事项 与原因分析
2009/04/24 Javascript
javascript学习笔记(十一) 正则表达式介绍
2012/06/20 Javascript
javascript 终止函数执行操作
2014/02/14 Javascript
JS获取随机数函数可自定义最小值最大值
2014/05/08 Javascript
nodejs 提示‘xxx’ 不是内部或外部命令解决方法
2014/11/20 NodeJs
js下拉选择框与输入框联动实现添加选中值到输入框的方法
2015/08/17 Javascript
JS实现选中当前菜单后高亮显示的导航条效果
2015/10/15 Javascript
JavaScript的removeChild()函数用法详解
2015/12/27 Javascript
JS检测移动端横竖屏的代码
2016/05/30 Javascript
解决Vue使用mint-ui loadmore实现上拉加载与下拉刷新出现一个页面使用多个上拉加载后冲突问题
2017/11/07 Javascript
JavaScript实现获取select下拉框中第一个值的方法
2018/02/06 Javascript
Js中将Long转换成日期格式的实现方法
2018/06/05 Javascript
jsonp跨域获取数据的基础教程
2018/07/01 Javascript
JavaScript引用类型Date常见用法实例分析
2018/08/08 Javascript
微信小程序实现收货地址左滑删除
2020/11/18 Javascript
ant design 日期格式化的实现
2020/10/27 Javascript
[36:29]2018DOTA2亚洲邀请赛 4.1 小组赛 A组加赛 LGD vs TNC
2018/04/02 DOTA
Python使用sort和class实现的多级排序功能示例
2018/08/15 Python
Python多进程方式抓取基金网站内容的方法分析
2019/06/03 Python
Django中的静态文件管理过程解析
2019/08/01 Python
python图片验证码识别最新模块muggle_ocr的示例代码
2020/07/03 Python
如何用Django处理gzip数据流
2021/01/29 Python
css和css3弹性盒模型实现元素宽度(高度)自适应
2019/05/15 HTML / CSS
Html5移动端获奖无缝滚动动画实现示例
2018/06/25 HTML / CSS
HTML5的download属性详细介绍和使用实例
2014/04/23 HTML / CSS
澳大利亚时尚前卫设计师珠宝在线:Amber Sceats
2017/10/04 全球购物
大学生关于奋斗的演讲稿
2014/01/09 职场文书
亲子读书活动方案
2014/02/22 职场文书
啤酒节策划方案
2014/05/28 职场文书
办公室行政主管岗位职责
2015/04/09 职场文书
2017寒假社会实践心得体会范文
2016/01/14 职场文书