项目中需要使用一些折线图、柱状图、饼状图等等,之前使用过heightCharts(关于heightCharts请看我的另一篇 http://www.cnblogs.com/jasonwang2y60/p/6224390.html ),觉得这货不开源,只是做展示的话又点浪费时间,于是看了下eCharts,于是在vue-cli搭建的项目中添加了eCharts,下面是具体步骤和自己的一些学习笔记,参照于Echarts3官网

1.在vue-cli项目中添加webpack配置,本文引入的最新版本。在 3.1.1 版本之前 ECharts 在 npm 上的 package 是非官方维护的,从 3.1.1 开始由官方 EFE 维护 npm 上 ECharts 和 zrender 的 package。
 

使用npm添加package.json文件中的配置并下载相关npm包依赖

  1. npm install echarts --save

然后在项目文件的入口js文件main.js中添加

  1. import echarts from "echarts"

在需要添加图标的组件中创建依赖的实例

  1. var echarts = require('echarts');

使用这种方式得到的是已经加载了所有图表和组件的 ECharts 包,因此体积会比较大。也可以只按需引入需要的模块。例如

  1. // 引入 ECharts 主模块
  2. var echarts = require('echarts/lib/echarts');
  3. // 引入柱状图
  4. require('echarts/lib/chart/bar');
  5. // 引入提示框和标题组件
  6. require('echarts/lib/component/tooltip');
  7. require('echarts/lib/component/title');
  1. 各种资源的列表详情请查阅官网的github仓库 https://github.com/ecomfe/echarts/blob/master/index.js
  2. 在模板中创建所需的dom
  1. <!-- ECharts图表测试 -->
  2. <div id="charts" style="width:'100%',height:'3.54rem'">
  3. <div id="main" :style="{width:'100%',height:'3.54rem'}"></div>
  4. </div>
  1. 写入js
  1. export default {
  2. name: 'Bank',
  3. data () {
  4. return {
  5. }
  6. },
  7. components: {
  8. },
  9. computed: {
  10. },
  11. methods: {
  12. },
  13. mounted() {
  14. /*ECharts图表*/
  15. var myChart = echarts.init(document.getElementById('main'));
  16. myChart.setOption({
  17. series : [
  18. {
  19. name: '访问来源',
  20. type: 'pie',
  21. radius: '55%',
  22. itemStyle: {
  23. normal: {
  24. // 阴影的大小
  25. shadowBlur: ,
  26. // 阴影水平方向上的偏移
  27. shadowOffsetX: ,
  28. // 阴影垂直方向上的偏移
  29. shadowOffsetY: ,
  30. // 阴影颜色
  31. shadowColor: 'rgba(0, 0, 0, 0.5)'
  32. }
  33. },
  34. data:[
  35. {value:, name:'搜索引擎'},
  36. {value:, name:'直接访问'},
  37. {value:, name:'邮件营销'},
  38. {value:, name:'联盟广告'},
  39. {value:, name:'视频广告'}
  40. ]
  41. }
  42. ]
  43. })
  44. }
  45. }
  1. eCharts中的事件:
    ECharts 支持常规的鼠标事件类型,包括 'click''dblclick''mousedown''mousemove''mouseup''mouseover''mouseout' 事件。
  1. // 基于准备好的dom,初始化ECharts实例
  2. var myChart = echarts.init(document.getElementById('main'));
  3. // 指定图表的配置项和数据
  1. var option = {
  2. xAxis: {
  3. data: ["衬衫","羊毛衫","雪纺衫","裤子","高跟鞋","袜子"]
  4. },
  5. yAxis: {},
  6. series: [{
  7. name: '销量',
  8. type: 'bar',
  9. data: [, , , , , ]
  10. }]
  11. };
  1. // 使用刚指定的配置项和数据显示图表。
  2. myChart.setOption(option);
  3. // 处理点击事件并且跳转到相应的百度搜索页面
  4. myChart.on('click', function (params) {
  5. window.open('https://www.baidu.com/s?wd=' + encodeURIComponent(params.name));
  6. });
  1. 所有的鼠标事件包含参数 params,这是一个包含点击图形的数据信息的对象,如下格式:
  1. {
  2. // 当前点击的图形元素所属的组件名称,
  3. // 其值如 'series'、'markLine'、'markPoint'、'timeLine' 等。
  4. componentType: string,
  5. // 系列类型。值可能为:'line'、'bar'、'pie' 等。当 componentType 为 'series' 时有意义。
  6. seriesType: string,
  7. // 系列在传入的 option.series 中的 index。当 componentType 为 'series' 时有意义。
  8. seriesIndex: number,
  9. // 系列名称。当 componentType 为 'series' 时有意义。
  10. seriesName: string,
  11. // 数据名,类目名
  12. name: string,
  13. // 数据在传入的 data 数组中的 index
  14. dataIndex: number,
  15. // 传入的原始数据项
  16. data: Object,
  17. // sankey、graph 等图表同时含有 nodeData 和 edgeData 两种 data,
  18. // dataType 的值会是 'node' 或者 'edge',表示当前点击在 node 还是 edge 上。
  19. // 其他大部分图表中只有一种 data,dataType 无意义。
  20. dataType: string,
  21. // 传入的数据值
  22. value: number|Array
  23. // 数据图形的颜色。当 componentType 为 'series' 时有意义。
  24. color: string
  25. }
  1. 如何区分鼠标点击到了哪里:
  1. myChart.on('click', function (params) {
  2. if (params.componentType === 'markPoint') {
  3. // 点击到了 markPoint 上
  4. if (params.seriesIndex === ) {
  5. // 点击到了 index 为 5 的 series 的 markPoint 上。
  6. }
  7. }
  8. else if (params.componentType === 'series') {
  9. if (params.seriesType === 'graph') {
  10. if (params.dataType === 'edge') {
  11. // 点击到了 graph 的 edge(边)上。
  12. }
  13. else {
  14. // 点击到了 graph 的 node(节点)上。
  15. }
  16. }
  17. }
  18.  
  19. });

你可以在回调函数中获得这个对象中的数据名、系列名称后在自己的数据仓库中索引得到其它的信息候更新图表,显示浮层等等,如下示例代码:

  1. myChart.on('click', function (parmas) {
  2. $.get('detail?q=' + params.name, function (detail) {
  3. myChart.setOption({
  4. series: [{
  5. name: 'pie',
  6. // 通过饼图表现单个柱子中的数据分布
  7. data: [detail.data]
  8. }]
  9. });
  10. });
  11. });

vue中添加Echarts图表的使用,Echarts的学习笔记的更多相关文章

  1. vue中添加util公共方法&&ES6之import、export

    vue中添加util公共方法&&ES6之import.export https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Re ...

  2. 【整理】解决vue不相关组件之间的数据传递----vuex的学习笔记,解决报错this.$store.commit is not a function

    解决vue不相关组件之间的数据传递----vuex的学习笔记,解决报错this.$store.commit is not a function https://www.cnblogs.com/jaso ...

  3. 人工智能中小样本问题相关的系列模型演变及学习笔记(二):生成对抗网络 GAN

    [说在前面]本人博客新手一枚,象牙塔的老白,职业场的小白.以下内容仅为个人见解,欢迎批评指正,不喜勿喷![握手][握手] [再啰嗦一下]本文衔接上一个随笔:人工智能中小样本问题相关的系列模型演变及学习 ...

  4. vue中添加echarts

    方法一:全局引入echarts 步骤: 1.全局安装 echarts依赖.        cnpm install echarts -- save 2.引入echarts模块,在Vue项目的main. ...

  5. 在vue中添加sass的配置的方法

    1.安装sass的依赖包 npm install --save-dev sass-loader //sass-loader依赖于 node-sass npm install --save-dev no ...

  6. 在vue中添加ico图标

    准备:添加 ico图标在与index.html同级的目录 第一种方法: 在index.html中引入: <link rel="shortcuticon" type=" ...

  7. 解决vue不相关组件之间的数据传递----vuex的学习笔记,解决报错this.$store.commit is not a function

    Vue的项目中,如果项目简单, 父子组件之间的数据传递可以使用  props 或者 $emit 等方式 进行传递 但是如果是大中型项目中,很多时候都需要在不相关的平行组件之间传递数据,并且很多数据需要 ...

  8. ubuntu中安装eclipse 分类: android ubuntu linux 学习笔记 2015-07-07 10:19 75人阅读 评论(0) 收藏

    上一篇说了安装jdk的事,于是趁热打铁,决定把eclipse也安装了. 下载这一系列就不用说了. 下载完成之后: 然后解压,解压之后文件剪切到/usr/software文件夹中,同时重命名为eclip ...

  9. 在MVC中使用dotless后台动态解析LESSCSS的学习笔记

    通过学习LessCSS,我们知道,Less是需要通过编译才能生成 .css 文件,主要使用三种方式进行编译: 1)使用第三方编译工具,在项目发布前编译好放在项目中. 2)在浏览器端解析执行,需要引用  ...

随机推荐

  1. C#——Winform 无边框随意拖动【转载】

    本篇技术内容转载自:http://www.cnblogs.com/ap0606122/archive/2012/10/23/2734964.html using System; using Syste ...

  2. DOS目录相关命令

    MD----创建自目录命令   格式:MD[盘符:][路径名]<子目录名> 1)在C盘的根目录下创建名为FOX的子目录  C:\>MD FOX 2)在FOX子目录下创建USER子目录 ...

  3. ZJOI2019 游记

    Day -2 入住酒店,跟 Sooke 一个房间 酒店还是很好的呢 然后就是颓废 Sooke 和 zxy,ljx,lyt,xx 一起打 lol,我孤独的打着坦克和 MC 然后复习了一下板子 Day - ...

  4. bzoj3435 [Wc2014]紫荆花之恋(动态点分治+替罪羊树)

    传送门(权限) 传送门(非权限) 题解 我终终终终终终于做出来啦!!! 作为一个没有学过替罪羊树的蒟蒻现场学了一下替罪羊树,作为一个平衡树都写数组版本的看着大佬的指针题解无语只能硬去理解然后照着抄了一 ...

  5. Vulnhub Acid

    1.信息收集 1.1.netdiscover netdiscover -i eth0 -r 192.168.118.0/24 1.2. Nmap nmap -sP -T4 192.168.118.0/ ...

  6. 总结day26 ----验证客户端的合法性,已经操作系统,进程的简单初识别

    前情提要 一:验证客户端的合法性: # .需要认证 # 程序和用户打交道的时候才会用到用户认证 # 对所有的客户端进行统一的认证 # # 我现在要做的事情 # 写一个server端 # 写一个clie ...

  7. docker微服务部署之:三,搭建Zuul微服务项目

    docker微服务部署之:二.搭建文章微服务项目 一.新增demo_eureka模块,并编写代码 右键demo_parent->new->Module->Maven,选择Module ...

  8. 【转载】Java 9 新特性——模块化

    来自 <http://www.jianshu.com/p/053a5ca89bbb#> 前言 年,我们将迎来 Java 语言的 22 岁生日,22岁,对于一个人而言,正是开始大展鸿图的年纪 ...

  9. linux下启动tomcat服务的命令是什么

    Linux下tomcat服务的启动.关闭与错误跟踪,使用PuTTy远程连接到服务器以后,通常通过以下几种方式启动关闭tomcat服务:切换到tomcat主目录下的bin目录(cd usr/local/ ...

  10. IT人生的价值和意义 感觉真的有了

     为了做新闻APP,我居然短短一个月利用业余时间做了: 一个通用新闻采集器. 一个新闻后台审核网站. 一个通用采集器下载网站. 一个新闻微网站. 一个新闻APP, 而且还给新闻微网站和新闻 APP练就 ...