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 相关文章推荐
在一个js文件里远程调用jquery.js会在ie8下的一个奇怪问题
Nov 28 Javascript
Bootstrap每天必学之简单入门
Nov 19 Javascript
浅析2种JavaScript继承方式
Dec 04 Javascript
一道JS前端闭包面试题解析
Dec 25 Javascript
jQuery防止重复绑定事件的解决方法
May 14 Javascript
第五篇Bootstrap 排版
Jun 21 Javascript
bootstrap下拉列表与输入框组结合的样式调整
Oct 08 Javascript
Angular中封装fancyBox(图片预览)遇到问题小结
Sep 01 Javascript
vue按需引入element Transfer 穿梭框
Sep 30 Javascript
基于element-ui封装可搜索的懒加载tree组件的实现
May 22 Javascript
JavaScript中如何调用Java方法
Sep 16 Javascript
动态实现element ui的el-table某列数据不同样式的示例
Jan 22 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 按指定元素值去除数组元素的实现方法
2011/11/04 PHP
解析php常用image图像函数集
2013/06/24 PHP
php获取中文拼音首字母类和函数分享
2014/04/24 PHP
PHP实现懒加载的方法
2015/03/07 PHP
PHP中模拟链表和链表的基本操作示例
2016/02/27 PHP
PHP中define() 与 const定义常量的区别详解
2019/06/25 PHP
小议Function.apply()之二------利用Apply的参数数组化来提高 JavaScript程序性能
2006/11/30 Javascript
Javascript 解疑
2009/11/11 Javascript
javascript 动态修改样式和层叠样式表代码
2010/04/27 Javascript
boxy基于jquery的弹出层对话框插件扩展应用 弹出层选择器
2010/11/21 Javascript
基于Arcgis for javascript实现百度地图ABCD marker的效果
2015/09/12 Javascript
JavaScript开发者必备的10个Sublime Text插件
2016/02/27 Javascript
jQuery Dialog 打开时自动聚焦的解决方法(两种方法)
2016/11/24 Javascript
简单实现jQuery弹幕效果
2017/05/06 jQuery
AngularJS实现动态添加Option的方法
2017/05/17 Javascript
百度地图去掉marker覆盖物或者去掉maker的label文字方法
2018/01/26 Javascript
JS和Canvas实现图片的预览压缩和上传功能
2018/03/30 Javascript
解决vue打包后刷新页面报错:Unexpected token
2019/08/27 Javascript
关于AngularJS中几种Providers的区别总结
2020/05/17 Javascript
原生JavaScript实现幻灯片效果
2021/02/19 Javascript
用python + hadoop streaming 分布式编程(一) -- 原理介绍,样例程序与本地调试
2014/07/14 Python
Python类的多重继承问题深入分析
2014/11/09 Python
python判断字符串是否纯数字的方法
2014/11/19 Python
Python的Flask框架中实现登录用户的个人资料和头像的教程
2015/04/20 Python
Python数据结构与算法之图的基本实现及迭代器实例详解
2017/12/12 Python
OpenCV模板匹配matchTemplate的实现
2019/10/18 Python
python实现用户名密码校验
2020/03/18 Python
Python使用pdb调试代码的技巧
2020/05/03 Python
什么是python的列表推导式
2020/05/26 Python
HTML5 LocalStorage 本地存储刷新值还在
2017/03/10 HTML / CSS
Boutique 1美国:阿联酋奢侈时尚零售商
2017/10/16 全球购物
销售行业个人求职自荐信
2013/09/25 职场文书
公职人员索取回扣检举信
2014/04/04 职场文书
2014法制宣传日活动总结
2014/07/09 职场文书
2016北大自主招生自荐信模板
2016/01/28 职场文书
Spring Boot 实现 WebSocket
2022/04/30 Java/Android