echarts整合多个类似option的方法实例


Posted in Javascript onJuly 10, 2018

前言

最近项目里面遇到一些图表需要用echarts来做。而我之前只用过一次echarts,也只是做了一个简单的饼状图,并没有涉及到很多的配置。但是现在这个项目,这些图表需要自己配置很多东西。像什么多余的网格线不显示啊,每个柱子的不一样的颜色渐变啊,这些都还好。问题在一个页面有多个柱状图,而这些柱状图除了数据和颜色不一样其他的都一毛一样。最后模仿老大做的整合多个option自己做了一个demo,自己写了详细的注释。

效果图如下:

echarts整合多个类似option的方法实例

html代码如下:

<!-- 为ECharts准备一个具备大小(宽高)的Dom -->
 <div id="chart1" style="width: 300px;height:300px;"></div>
 <div id="chart2" style="width: 300px;height:300px;"></div>
 <div id="chart3" style="width: 300px;height:300px;"></div>
 <div id="chart4" style="width: 300px;height:300px;"></div>
 <script src="aa.js"></script>
 <script>
 new aa();
 </script>

js代码如下:

function aa(){
 //初始化加载图表
 this.initchart();
}
aa.prototype = {
 initchart:function(){
  //定义每个图表的颜色数组,我这里是渐变色的柱子,有四个
   var color = [ "#ad3f3b", "#df8380","#89a54e","#b7c894","#3c8d91","#78b1b5","#db853c","#f2b582"];
  var dex = 0;
  //遍历装图表的盒子
  for(var i = 1; i <= 4; i++){
   //把echarts初始化图表的方法提出来通过拼接id的方法找到每个div的id
   var chart = echarts.init(document.getElementById('chart'+ i));
   //把option做成一个变量,通过传参来初始化每个图 new echarts.graphic.LinearGradient是eachsrts柱子渐变的方法
   //传递的参数有图表的名字,渐变的颜色,和所对应的单位
   var option = this.optionFun("销售额", new echarts.graphic.LinearGradient(0,0,0,1,[
    {offset:0,color: color[dex++]},
    {offset:1,color:color[dex++]}
   ]), "单位");
    //常规操作 为echarts对象加载数据 
   chart.setOption(option);
  }
 },
 //然后接下来都是一些echarts的一些常规配置
 optionFun:function(title,color,unit){
  var option = {
   title:{
    text:title,
    left:'center',
    textStyle:{
     fontStyle:'normal',
     fontSizeL:'14px',
    },
    top:'top',
   },
   xAxis:{
    type:'category',
    data:['目标','完成'],
    axisLine:{
     lineStyle:{
      color:'#999',
     },
    },
    axisLabel:{
     textStyle:{
      color:'#333',
     },
    },
   },
   yAxis:{
    type:'value',
    name:unit,
    nameLocation:'start',
    nameTextStyle:{
     color:'#333',
    },
    axisLine:{
     lineStyle:{
      color:'#999',
     }
    },
    axisLabel:{
     textStyle:{
      color:'#333',
     },
    },
    splitLine:{
     show:false,
    },
   },
   series:[{
    data:data,//后台传过来的数据[98,57]
    type:'bar',
    barWidth:20,
    itemStyle:{
     normal:{
      color:color,
      barBorderRadius:2,
      shadowColor:'rgba(4,13,31,0.5)',
      shadowBlur:5,
      shadowOffsetX:2,
      shadowOffsetY:0,
      label:{
       show:true,
       position:'top',
       textStyle:{
        color:'#333',
       },
      },
     }
    }
   }],
  };
  //将option返回
  return option;
 }
}

其实后来发现,echarts一些常规的配置在官方给的文档里面都有,就是自己不太熟悉。最主要的还是自己掌握的东西太少了,不懂的融会贯通。也更加清楚了js对于一个前端来说是多么的重要。而我自己也在不断的努力中,很感谢我老大,很多不懂的地方问他,他都会帮我解决。继续加油吧。

注:这个配置目前不支持图表数量超过所定义的颜色数量后颜色循环,或许以后多研究下可以实现,但是目前是不支持的。

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,如果有疑问大家可以留言交流,谢谢大家对三水点靠木的支持。

Javascript 相关文章推荐
JavaScript DOM 学习第三章 内容表格
Feb 19 Javascript
jquery.uploadify插件在chrome浏览器频繁崩溃解决方法
Mar 01 Javascript
详解Node.js包的工程目录与NPM包管理器的使用
Feb 16 Javascript
JQuery.validate在ie8下不支持的快速解决方法
May 18 Javascript
JS使用onerror捕获异常示例
Aug 03 Javascript
vue中渐进过渡效果实现
Oct 27 Javascript
JS中使用new Date(str)创建时间对象不兼容firefox和ie的解决方法(两种)
Dec 14 Javascript
Bootstrap CSS组件之按钮组(btn-group)
Dec 17 Javascript
JSON 数据详解及实例代码分析
Jan 20 Javascript
微信小程序媒体组件详解(视频,音乐,图片)
Sep 19 Javascript
webpack4 从零学习常用配置(小结)
May 28 Javascript
如何实现vue的tree组件
Dec 03 Vue.js
详解使用Next.js构建服务端渲染应用
Jul 10 #Javascript
node.js中TCP Socket多进程间的消息推送示例详解
Jul 10 #Javascript
vue中$set的使用(结合在实际应用中遇到的坑)
Jul 10 #Javascript
JavaScript中 ES6变量的结构赋值
Jul 10 #Javascript
vue超时计算的组件实例代码
Jul 09 #Javascript
微信小程序自定义底部弹出框
Nov 16 #Javascript
详解vue中组件参数
Jul 09 #Javascript
You might like
一个可以找出源代码中所有中文的工具
2006/10/25 PHP
PHP伪造referer实例代码
2008/09/20 PHP
php导入导出excel实例
2013/10/25 PHP
简单分析ucenter 会员同步登录通信原理
2014/08/25 PHP
优化WordPress的Google字体以加速国内服务器上的运行
2015/11/24 PHP
Laravel手动返回错误码示例
2019/10/22 PHP
IE/FireFox具备兼容性的拖动代码
2007/08/13 Javascript
JavaScript的public、private和privileged模式
2009/12/28 Javascript
jquery插件 cluetip 关键词注释
2010/01/12 Javascript
javascript中window.event事件用法详解
2012/12/11 Javascript
JS判断数组中是否有重复值得三种实用方法
2013/08/16 Javascript
Javascript中克隆一个数组的实现代码
2013/12/06 Javascript
IE 下Enter提交表单存在重复提交问题的解决方法
2014/05/04 Javascript
浅谈jQuery.easyui的datebox格式化时间
2015/06/25 Javascript
深入理解setTimeout函数和setInterval函数
2016/05/20 Javascript
详解Vue2.0 事件派发与接收
2017/09/05 Javascript
JavaScript数据结构之双向链表和双向循环链表的实现
2017/11/28 Javascript
js+css实现红包雨效果
2018/07/12 Javascript
详解微信小程序开发之formId使用(模板消息)
2019/08/27 Javascript
layui框架与SSM前后台交互的方法
2019/09/12 Javascript
JavaScript生成随机验证码代码实例
2019/09/28 Javascript
关于vue 项目中浏览器跨域的配置问题
2020/11/10 Javascript
jquery实现拖拽小方块效果
2020/12/10 jQuery
[01:28:56]2014 DOTA2华西杯精英邀请赛 5 24 CIS VS DK
2014/05/26 DOTA
关于Python中Inf与Nan的判断问题详解
2017/02/08 Python
特征脸(Eigenface)理论基础之PCA主成分分析法
2018/03/13 Python
keras的ImageDataGenerator和flow()的用法说明
2020/07/03 Python
苹果Mac升级:MacSales.com
2017/11/20 全球购物
英国运动服、设备及配件网站:DW Sports
2019/12/04 全球购物
校运会入场式解说词
2014/02/10 职场文书
单位租房协议书范本
2014/12/04 职场文书
边城读书笔记
2015/06/29 职场文书
优质护理服务心得体会
2016/01/22 职场文书
2016幼儿教师自荐信范文
2016/01/28 职场文书
微信小程序基础教程之echart的使用
2021/06/01 Javascript
springboot如何初始化执行sql语句
2021/06/22 Java/Android