在Vue中使用Echarts可视化库的完整步骤记录


Posted in Vue.js onNovember 18, 2020

前言

由于最近项目需要做可视化数据展示,也就是用图表展示数据,他还有一个很高端的名字:“大数据可视化”(参考图一),首先考虑选择什么图表库来作为基础开发,目前被普遍认可的是Hcharts、Echarts、AntV。

在Vue中使用Echarts可视化库的完整步骤记录

介绍:

Hcharts:国外的一款图表库,是图表库的领头羊

在Vue中使用Echarts可视化库的完整步骤记录

Echarts:百度开发的数据可视化库,国内图表库的 “领军人物”

在Vue中使用Echarts可视化库的完整步骤记录

AntV:是蚂蚁金服开发的数据可视化库

在Vue中使用Echarts可视化库的完整步骤记录

总结出以下几个优略点区别Echarts、Hcharts哪个比较合适:

1、学习容易程度:只要懂JS,那么相信你能很快上手。两者打分相同。但是百度出品的Echarts对于国内城市已经有了相应的配置,调用非常方便。因此在绘制地图方面,Echarts略胜一筹。

2、大数据表现力:有网友说,当数据量达到万条的级别时,Highcharts的多表联动、自动缩放具有更强的优势,而Echarts则会出现明显的卡顿,需要设置datazoom。因此Hcharts完胜。

3、文档友好程度:Echarts是百度的,Hcharts是国外的。另外,Echarts的文档像是说明书,而Highcharts的文档像是博客。个人仍偏向于说明书一样的文档,容易定位,因此我为Echarts转身亮灯。

4、图表美观程度:看看两家的实例EchartsHchartsEcharts完爆啊!而且Echarts基于Canvas,对于3D绘图有绝对优势,能画出极漂亮的图形。

5、图表配置的自由度:Hcharts基于SVG,方便定制,同类型的图表,Hcharts能玩出100种花样。

6、图表的丰富程度Echarts丰富的图表种类,和惊艳的3D效果,吊打Hcharts。

最后,更为关键的是,Echarts免费,Hcharts用于商业用途时还需要授权,个人用时虽然免费,但会在图表上显示logo,有洁癖的话就只能绕道了。

所以,就决定是你了,Echarts

个人不推荐使用Vue-Echarts版本,因为Echarts本身难度不算大,虽然文档有点像是 “说明书”,但是还算全乎,花点时间还是可以理解的。

引入:

在Vue中使用Echarts时可以按照一般引入插件的方式引入

1、使用npm安装Echarts:

npm install echarts --save

 2、全局引入Echarts:

//main.js 不推荐
import echarts from "echarts";
Vue.prototype.$echarts = echarts;

个人不推荐在main.js全局引入的发方式,根据项目使用Echarts的程度可以选择按需引入:

3、按需引入Echarts:

let Echarts = require('echarts/lib/echarts');
require('echarts/lib/chart/bar'); //所需图表

简单使用: 

首先应该明确Echarts图形必须满足四项刚性条件才可以绘制:

准备一个具有宽高的容器(container);每次绘制之前需要初始化(init);必须设置配置,否则无从绘制(option);改变数据时必须传入改变的数据,否则监听不到新数据(setOption);

四步缺一不可,可以简单理解为日常生活中娶媳妇:

找到适合结婚的女朋友(container);认识一段时间之后确定关系(init);确定关系之后需要买买买,她才会跟你继续交往(option);关系进一步升温之后就可以把他娶回家了(setOption);

使用:

<!-- 准备具有宽高的容器 -->
 <div style="width: 100%; height: 100%" ref="chart"></div>
<script>
let Echarts = require('echarts/lib/echarts'); //基础实例 注意不要使用import
require('echarts/lib/chart/bar'); //按需引入 bar = 柱状图
export default {
  data() { return { chart: null } }, //图表实例
  mounted() { this.init() },
  methods: {
    init() {
      //2.初始化
      this.chart = Echarts.init(this.$refs.chart);
      //3.配置数据
      let option = {
        xAxis: { type: 'category', data: ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun'] }, //X轴
        yAxis: { type: 'value' }, //Y轴
        series: [{ data: [120, 200, 150, 80, 70, 110, 130], type: 'bar' }] //配置项
      };
      // 4.传入数据
      this.chart.setOption(option);
    }
  }
};
</script>

 在Vue中使用Echarts可视化库的完整步骤记录

自适应窗口大小:

为了兼容性,需要做到每个图表根据屏幕变化而自适应宽高

单个 / 多个图表均生效:

mounted() {
    window.addEventListener('resize', () => {
      this.chart.resize();
    });
  }

效果展示:

在Vue中使用Echarts可视化库的完整步骤记录

总结

到此这篇关于在Vue中使用Echarts可视化库的文章就介绍到这了,更多相关Vue使用Echarts可视化库内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Vue.js 相关文章推荐
Vue使用Element实现增删改查+打包的步骤
Nov 25 Vue.js
在Vue中使用mockjs代码实例
Nov 25 Vue.js
Vue实现指令式动态追加小球动画组件的步骤
Dec 18 Vue.js
vue 在服务器端直接修改请求的接口地址
Dec 19 Vue.js
vue中如何添加百度统计代码
Dec 19 Vue.js
基于Vue3.0开发轻量级手机端弹框组件V3Popup的场景分析
Dec 30 Vue.js
基于Vue2实现移动端图片上传、压缩、拖拽排序、拖拽删除功能
Jan 05 Vue.js
Vue单页面应用中实现Markdown渲染
Feb 14 Vue.js
vue项目配置 webpack-obfuscator 进行代码加密混淆的实现
Feb 26 Vue.js
Vue中插槽slot的使用方法与应用场景详析
Jun 08 Vue.js
vue+elementUI实现表格列的显示与隐藏
Apr 13 Vue.js
vue里使用create, mounted调用方法
Apr 26 Vue.js
详解vue实现坐标拾取器功能示例
Nov 18 #Vue.js
Vue如何循环提取对象数组中的值
Nov 18 #Vue.js
vue在图片上传的时候压缩图片
Nov 18 #Vue.js
Vue +WebSocket + WaveSurferJS 实现H5聊天对话交互的实例
Nov 18 #Vue.js
springboot+vue实现文件上传下载
Nov 17 #Vue.js
vue 表单输入框不支持focus及blur事件的解决方案
Nov 17 #Vue.js
解决vue elementUI 使用el-select 时 change事件的触发问题
Nov 17 #Vue.js
You might like
《破坏领主》销量已超100万 未来将继续开发新内容
2020/03/08 其他游戏
laravel在中间件内生成参数并且传递到控制器中的2种姿势
2019/10/15 PHP
jQuery 跨域访问问题解决方法
2009/12/02 Javascript
JavaScript与Div对层定位和移动获得坐标的实现代码
2010/09/08 Javascript
jQuery自定义事件的简单实现代码
2014/01/27 Javascript
js加减乘除丢失精度问题解决方法
2014/05/16 Javascript
全面解析Bootstrap中Carousel轮播的使用方法
2016/06/13 Javascript
JavaScript“尽快失败”的原则实例详解
2016/10/08 Javascript
vue利用better-scroll实现轮播图与页面滚动详解
2017/10/20 Javascript
利用vue.js实现被选中状态的改变方法
2018/02/08 Javascript
4个顶级JavaScript高级文本编辑器
2018/10/10 Javascript
js实现网页同时进行多个倒计时功能
2019/02/25 Javascript
解决echarts vue数据更新,视图不更新问题(echarts嵌在vue弹框中)
2020/07/20 Javascript
three.js显示中文字体与tween应用详析
2021/01/04 Javascript
python中的闭包用法实例详解
2015/05/05 Python
pandas DataFrame数据转为list的方法
2018/04/11 Python
opencv python 傅里叶变换的使用
2018/07/21 Python
在Pandas中给多层索引降级的方法
2018/11/16 Python
python3实现字符串操作的实例代码
2019/04/16 Python
python使用requests.session模拟登录
2019/08/09 Python
浅谈Python中的异常和JSON读写数据的实现
2020/02/27 Python
Python tornado上传文件的功能
2020/03/26 Python
Python内存映射文件读写方式
2020/04/24 Python
python实现简单遗传算法
2020/09/18 Python
关于python3.9安装wordcloud出错的问题及解决办法
2020/11/02 Python
HTML5 Video标签的属性、方法和事件汇总介绍
2015/04/24 HTML / CSS
西班牙语在线票务市场:SuperBoletería
2019/06/10 全球购物
可持续木材、生态和铝制太阳镜:Proof Eyewear
2019/07/24 全球购物
当我正在为表建立索引的时候,SQL Server 会禁止对表的访问吗
2014/04/28 面试题
材料物理专业大学毕业生求职信
2013/10/15 职场文书
大学同学十年聚会感言
2014/02/21 职场文书
《分一分》教学反思
2014/04/13 职场文书
2015年行政执法工作总结
2015/05/23 职场文书
七年级作文之雪景
2019/11/18 职场文书
python实现简单的井字棋
2021/05/26 Python
Oracle以逗号分隔的字符串拆分为多行数据实例详解
2021/07/16 Oracle