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 网页跳转的方法
Dec 24 Javascript
网页和浏览器兼容性问题汇总(draft1)
Jun 01 Javascript
初学Jquery插件制作 在SageCRM的查询屏幕隐藏部分行的功能
Dec 26 Javascript
验证码在IE中不刷新而谷歌等浏览器正常的解决方案
Mar 18 Javascript
JavaScript简单判断复选框是否选中及取出值的方法
Aug 13 Javascript
基于jQuery实现交互体验社会化分享代码附源码下载
Jan 04 Javascript
Node.js的Koa框架上手及MySQL操作指南
Jun 13 Javascript
React根据宽度自适应高度的示例代码
Oct 11 Javascript
webpack配置之后端渲染详解
Oct 26 Javascript
Angular Material Icon使用详解
Nov 07 Javascript
微信小程序picker组件关于objectArray数据类型的绑定方法
Mar 13 Javascript
微信小程序 组件的外部样式externalClasses使用详解
Sep 06 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环境――Appserv
2006/12/13 PHP
php2html php生成静态页函数
2008/12/08 PHP
mysql总结之explain
2012/02/27 PHP
PHP header()函数使用详细(301、404等错误设置)
2013/04/17 PHP
php实现singleton()单例模式实例
2014/11/06 PHP
PHP绕过open_basedir限制操作文件的方法
2018/06/10 PHP
[原创]图片分页查看
2006/08/28 Javascript
[推荐]javascript 面向对象技术基础教程
2009/03/03 Javascript
iframe异步加载实现点击左边菜单加载右边内容实例讲解
2013/03/04 Javascript
jQuery对象数据缓存Cache原理及jQuery.data方法区别介绍
2013/04/07 Javascript
JS实现DIV容器赋值的方法
2015/12/14 Javascript
学习JavaScript设计模式之中介者模式
2016/01/14 Javascript
jQuery数组处理函数整理
2016/08/03 Javascript
Node调用Java的示例代码
2017/09/20 Javascript
JS实现分页浏览横向图片(类轮播)实例代码
2017/11/06 Javascript
微信小程序canvas实现刮刮乐效果
2018/07/09 Javascript
简单了解Javscript中兄弟ifream的方法调用
2019/06/17 Javascript
JS实现在线ps功能详解
2019/07/31 Javascript
JQuery事件委托(适用于给动态生成的脚本元素添加事件)
2020/02/01 jQuery
[01:43]3.19DOTA2发布会 三代刀塔人第三代
2014/03/25 DOTA
Python操作Excel之xlsx文件
2017/03/24 Python
利用Python读取文件的四种不同方法比对
2017/05/18 Python
Python numpy实现二维数组和一维数组拼接的方法
2018/06/05 Python
python 与服务器的共享文件夹交互方法
2018/12/27 Python
Python Opencv 通过轨迹(跟踪)栏实现更改整张图像的背景颜色
2020/03/09 Python
html5使用canvas实现图片下载功能的示例代码
2017/08/26 HTML / CSS
施华洛世奇美国官网:SWAROVSKI美国
2018/02/08 全球购物
麦当劳印度网上订餐:McDelivery
2020/03/16 全球购物
施惠特软件测试面试题以及笔试题
2015/05/13 面试题
中学生学习生活的自我评价
2013/10/26 职场文书
办理信用卡工作证明
2014/01/11 职场文书
《蚂蚁和蝈蝈》教学反思
2014/02/24 职场文书
《蚕姑娘》教学反思
2014/04/15 职场文书
职工小家建设活动方案
2014/08/25 职场文书
优秀共青团员事迹材料
2014/12/25 职场文书
MySQL中distinct与group by之间的性能进行比较
2021/05/26 MySQL