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 相关文章推荐
Jquery+WebService 校验账号是否已被注册的代码
Jul 12 Javascript
扩展javascript的Date方法实现代码(prototype)
Nov 20 Javascript
javascript中IE浏览器不支持NEW DATE()带参数的解决方法
Mar 01 Javascript
基于jQuery实现的仿百度首页滑动选项卡效果代码
Nov 16 Javascript
JS组件中bootstrap multiselect两大组件较量
Jan 26 Javascript
Vuejs第六篇之Vuejs与form元素实例解析
Sep 05 Javascript
javascript实现获取图片大小及图片等比缩放的方法
Nov 24 Javascript
AngularJS 最常用的八种功能(基础知识)
Jun 26 Javascript
backbone简介_动力节点Java学院整理
Jul 14 Javascript
浅谈箭头函数写法在ReactJs中的使用
Aug 22 Javascript
AngularJs 禁止模板缓存的方法
Nov 28 Javascript
vue+element项目中过滤输入框特殊字符小结
Aug 07 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初学者(入门学习经验谈)
2010/10/12 PHP
基于magic_quotes_gpc与magic_quotes_runtime的区别与使用介绍
2013/04/22 PHP
php显示时间常用方法小结
2015/06/05 PHP
WordPress主题制作之模板文件的引入方法
2015/12/28 PHP
PHP通过get方法获得form表单数据方法总结
2018/09/12 PHP
Linux下 php7安装redis的方法
2018/11/01 PHP
javascript CSS画图之基础篇
2009/07/29 Javascript
nodejs的require模块(文件模块/核心模块)及路径介绍
2013/01/14 NodeJs
JQueryEasyUI datagrid框架的进阶使用
2013/04/08 Javascript
jquery通过ajax加载一段文本内容的方法
2015/01/15 Javascript
js简单的点击返回顶部效果实现方法
2015/04/10 Javascript
Windows系统下Node.js的简单入门教程
2015/06/23 Javascript
整理Javascript基础语法学习笔记
2015/11/29 Javascript
jQuery实现的简单提示信息插件
2015/12/08 Javascript
JavaScript html5 canvas绘制时钟效果(二)
2016/03/27 Javascript
详解Angular之constructor和ngOnInit差异及适用场景
2017/06/22 Javascript
Vue.js中provide/inject实现响应式数据更新的方法示例
2019/10/16 Javascript
微信小程序实现限制用户转发功能的实例代码
2020/02/22 Javascript
关于小程序优化的一些建议(小结)
2020/12/10 Javascript
python 中split 和 strip的实例详解
2017/07/12 Python
解决python3 json数据包含中文的读写问题
2018/05/10 Python
解决pyinstaller打包pyqt5的问题
2019/01/08 Python
PyQt5的PyQtGraph实践系列3之实时数据更新绘制图形
2019/05/13 Python
Window系统下Python如何安装OpenCV库
2020/03/05 Python
使用OpenCV获取图片连通域数量,并用不同颜色标记函
2020/06/04 Python
基于Python+QT的gui程序开发实现
2020/07/03 Python
python 两种方法删除空文件夹
2020/09/29 Python
YBF Beauty官网:美丽挚友,美国知名彩妆品牌
2020/11/22 全球购物
求职自荐书范文
2013/12/04 职场文书
校长先进事迹材料
2014/02/01 职场文书
捐款倡议书范文
2014/02/02 职场文书
模具设计与制造专业推荐信
2014/02/16 职场文书
中班开学寄语
2014/04/04 职场文书
考试作弊检讨书
2014/10/21 职场文书
教师培训学习心得体会
2016/01/21 职场文书
Python+Appium新手教程
2021/04/17 Python