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 相关文章推荐
json简单介绍
Jun 10 Javascript
深入分析js中的constructor和prototype
Apr 07 Javascript
jQuery 计算iframe 窗口大小的方法
May 13 Javascript
JavaScript实现数据类型的相互转换
Mar 06 Javascript
Bootstrap Table 在指定列中添加下拉框控件并获取所选值
Jul 31 Javascript
详解Node全局变量global模块
Sep 28 Javascript
基于Koa2写个脚手架模拟接口服务的方法
Nov 27 Javascript
如何在Vue.js中实现标签页组件详解
Jan 02 Javascript
微信小程序实现发送模板消息功能示例【通过openid推送消息给用户】
May 05 Javascript
webpack4 从零学习常用配置(小结)
May 28 Javascript
微信小程序学习总结(五)常见问题实例小结
Jun 04 Javascript
JavaScript实现滚动加载更多
Dec 27 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
DIY一个适配电脑声卡的动圈话筒放大器
2021/03/02 无线电
咖啡与水的关系
2021/03/03 冲泡冲煮
在WINDOWS中设置计划任务执行PHP文件的方法
2011/12/19 PHP
php生成不重复随机数、数组的4种方法分享
2015/03/30 PHP
Three.js源码阅读笔记(光照部分)
2012/12/27 Javascript
自己封装的常用javascript函数分享
2015/01/07 Javascript
jQuery实现切换字体大小的方法
2015/03/10 Javascript
纯JavaScript基于notie.js插件实现消息提示特效
2016/01/18 Javascript
Node.js模块封装及使用方法
2016/03/06 Javascript
jQuery bt气泡实现悬停显示及移开隐藏功能的方法
2016/07/12 Javascript
关于AngularJs数据的本地存储详解
2017/01/20 Javascript
jQuery选择器之子元素过滤选择器
2017/09/28 jQuery
jquery实现侧边栏左右伸缩效果的示例
2017/12/19 jQuery
vue 界面刷新数据被清除 localStorage的使用详解
2018/09/16 Javascript
4个顶级开源JavaScript图表库
2018/09/29 Javascript
微信小程序实现简单表格
2019/02/14 Javascript
JS如何生成随机验证码
2020/03/02 Javascript
vue实现拖拽进度条
2021/03/01 Vue.js
Python cookbook(数据结构与算法)将名称映射到序列元素中的方法
2018/03/22 Python
Python中GeoJson和bokeh-1的使用讲解
2019/01/03 Python
Python通过for循环理解迭代器和生成器实例详解
2019/02/16 Python
使用PyQtGraph绘制精美的股票行情K线图的示例代码
2019/03/14 Python
Django连接数据库并实现读写分离过程解析
2019/11/13 Python
西安启天科技有限公司网络工程师面试题笔试题
2016/06/12 面试题
七年级历史教学反思
2014/02/05 职场文书
2014年感恩母亲演讲稿
2014/05/27 职场文书
硕士生找工作求职信
2014/07/05 职场文书
建筑施工安全责任书
2014/07/24 职场文书
八一建军节营销活动方案
2014/08/31 职场文书
2014年餐厅服务员工作总结
2014/11/18 职场文书
英文感谢信格式
2015/01/21 职场文书
幼儿园教师安全责任书
2015/05/08 职场文书
如何用python绘制雷达图
2021/04/24 Python
python绘图subplots函数使用模板的示例代码
2021/04/30 Python
MySQL系列之十 MySQL事务隔离实现并发控制
2021/07/02 MySQL
Python函数式编程中itertools模块详解
2021/09/15 Python