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有关的小细节
Apr 02 Javascript
JavaScript更改class和id的方法
Oct 10 Javascript
基于jquery的商品展示放大镜
Aug 07 Javascript
js图片模糊切换显示特效的方法
Feb 17 Javascript
AngularJS使用ngMessages进行表单验证
Dec 27 Javascript
AngularJS 所有版本下载地址
Sep 14 Javascript
jquery广告无缝轮播实例
Jan 05 Javascript
教你用十行node.js代码读取docx的文本
Mar 08 Javascript
Vue.js鼠标悬浮更换图片功能
May 17 Javascript
Bootstrap Table使用整理(三)
Jun 09 Javascript
JavaScript使用prototype原型实现的封装继承多态示例
Aug 31 Javascript
详解vue-cli项目开发/生产环境代理实现跨域请求
Jul 23 Javascript
详解使用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
php 空格,换行,跳格使用说明
2009/12/18 PHP
解析php中如何直接执行SHELL
2013/06/28 PHP
typecho插件编写教程(一):Hello World
2015/05/28 PHP
PHP7新特性foreach 修改示例介绍
2016/08/26 PHP
CI框架入门之MVC简单示例
2016/11/21 PHP
Laravel框架实现redis集群的方法分析
2017/09/14 PHP
PHP序列化和反序列化深度剖析实例讲解
2020/12/29 PHP
JavaScript继承方式实例
2010/10/29 Javascript
使用jQuery操作Cookies的实现代码
2011/10/09 Javascript
js为鼠标添加右击事件防止默认的右击菜单弹出
2013/07/29 Javascript
js removeChild 方法深入理解
2016/08/16 Javascript
获取jqGrid中选择的行的数据
2016/11/30 Javascript
JavaScript 动态三角函数实例详解
2017/01/08 Javascript
基于nodejs实现微信支付功能
2017/12/20 NodeJs
vue 实现全选全不选的示例代码
2018/03/29 Javascript
vue中的provide/inject的学习使用
2018/05/09 Javascript
vue样式穿透 ::v-deep的具体使用
2020/06/04 Javascript
在Python中用keys()方法返回字典键的教程
2015/05/21 Python
浅谈Python的文件类型
2016/05/30 Python
基于python代码实现简易滤除数字的方法
2018/07/17 Python
Python使用ctypes调用C/C++的方法
2019/01/29 Python
Python实现连接MySql数据库及增删改查操作详解
2019/04/16 Python
Python模块的制作方法实例分析
2019/12/21 Python
python opencv 实现读取、显示、写入图像的方法
2020/06/08 Python
CSS3效果:自定义“W”形运行轨迹实例
2017/03/29 HTML / CSS
利用HTML5 Canvas API绘制矩形的超级攻略
2016/03/21 HTML / CSS
文员个人的求职信范文
2013/09/26 职场文书
单位单身证明范本
2014/01/11 职场文书
秋季开学典礼主持词
2014/03/19 职场文书
网站客服岗位职责
2014/04/05 职场文书
党员群众路线对照检查材料
2014/08/31 职场文书
资源环境与城乡规划管理专业自荐书
2014/09/26 职场文书
党员个人剖析材料
2014/09/30 职场文书
镇人大副主席民主生活会对照检查材料思想汇报
2014/10/01 职场文书
入党培养人考察意见
2015/06/08 职场文书
浅谈CSS不规则边框的生成方案
2021/05/25 HTML / CSS