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 相关文章推荐
学习ExtJS(二) Button常用方法
Oct 07 Javascript
js获取某元素的class里面的css属性值代码
Jan 16 Javascript
jQuery制作简洁的多级联动Select下拉框
Dec 23 Javascript
Javascript核心读书有感之类型、值和变量
Feb 11 Javascript
JavaScript实现的多个图片广告交替显示效果代码
Sep 04 Javascript
jqGrid表格应用之新增与删除数据附源码下载
Dec 02 Javascript
正则表达式(语法篇推荐)
Jun 24 Javascript
javascript宿主对象之window.navigator详解
Sep 07 Javascript
分享一个原生的JavaScript拖动方法
Sep 25 Javascript
解决jQuery ajax动态新增节点无法触发点击事件的问题
May 24 jQuery
动态加载JavaScript文件的3种方式
May 05 Javascript
Vue双向数据绑定(MVVM)的原理
Oct 03 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判断变量是否为0的方法
2014/02/08 PHP
php批量删除超链接的实现方法
2015/10/19 PHP
php实现微信公众平台发红包功能
2018/06/14 PHP
JavaScript库 开发规则
2009/01/31 Javascript
Javascript Math对象
2009/08/13 Javascript
基于jquery循环map功能的代码
2011/02/26 Javascript
解析javascript系统错误:-1072896658的解决办法
2013/07/08 Javascript
jQuery操作DOM之获取表单控件的值
2015/01/23 Javascript
jQuery实现仿新浪微博浮动的消息提示框(可智能定位)
2015/10/10 Javascript
jQuery实现获取绑定自定义事件元素的方法
2015/12/02 Javascript
JavaScript截取、切割字符串的技巧
2016/01/07 Javascript
AngularJS基础 ng-value 指令简单示例
2016/08/03 Javascript
DOM中事件处理概览与原理的全面解析
2016/08/16 Javascript
AngularJS表达式讲解及示例代码
2016/08/16 Javascript
JS自定义函数实现时间戳转换成date的方法示例
2017/08/27 Javascript
详解写好JS条件语句的5条守则
2019/02/28 Javascript
vue 引用自定义ttf、otf、在线字体的方法
2019/05/09 Javascript
生产制造追溯系统之在线打印功能
2019/06/03 Javascript
jquery实现下载图片功能
2019/07/18 jQuery
基于Vue中使用节流Lodash throttle详解
2019/10/30 Javascript
微信小程序使用 vant Dialog组件的正确方式
2020/02/21 Javascript
40行代码把Vue3的响应式集成进React做状态管理
2020/05/20 Javascript
vue接通后端api以及部署到服务器操作
2020/08/13 Javascript
[03:32]2014DOTA2西雅图邀请赛 CIS外卡赛赛前black专访
2014/07/09 DOTA
python版简单工厂模式
2017/10/16 Python
详解python 拆包可迭代数据如tuple, list
2017/12/29 Python
django 外键model的互相读取方法
2018/12/15 Python
Python中整数的缓存机制讲解
2019/02/16 Python
python+gdal+遥感图像拼接(mosaic)的实例
2020/03/10 Python
pandas DataFrame 数据选取,修改,切片的实现
2020/04/24 Python
python实现图片,视频人脸识别(opencv版)
2020/11/18 Python
CSS3教程:background-clip和background-origin
2008/10/17 HTML / CSS
市级三好学生事迹材料
2014/08/27 职场文书
农业项目合作意向书
2015/05/08 职场文书
2015暑期社会实践通讯稿
2015/07/18 职场文书
忆童年!用Python实现愤怒的小鸟游戏
2021/06/07 Python