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 相关文章推荐
在IE中调用javascript打开Excel的代码(downmoon原作)
Apr 02 Javascript
解决自定义$(id)的方法与jquery选择器$冲突的问题
Jun 14 Javascript
JS数组array元素的添加和删除方法代码实例
Jun 01 Javascript
jQuery插件datepicker 日期连续选择
Jun 12 Javascript
jquery实现华丽的可折角广告代码
Sep 02 Javascript
详解XMLHttpRequest(二)响应属性、二进制数据、监测上传下载进度
Sep 14 Javascript
纯JS实现表单验证实例
Dec 24 Javascript
js实现自动图片轮播代码
Mar 22 Javascript
addEventListener()与removeEventListener()解析
Apr 20 Javascript
JavaScript实现微信号随机切换代码
Mar 09 Javascript
微信小程序实现红包雨功能
Jul 11 Javascript
JS加密插件CryptoJS实现的DES加密示例
Aug 16 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调用Java对象的方法
2006/10/09 PHP
php实现的遍历文件夹下所有文件,编辑删除
2010/01/05 PHP
php empty函数判断mysql表单是否为空
2010/04/12 PHP
PHP判断文章里是否有图片的简单方法
2014/07/26 PHP
PHP实现的多彩标签效果代码分享
2014/08/21 PHP
PHP判断来访是搜索引擎蜘蛛还是普通用户的代码小结
2015/09/14 PHP
yii2-GridView在开发中常用的功能及技巧总结
2017/01/07 PHP
PHP+JQUERY操作JSON实例
2017/03/23 PHP
完美解决Thinkphp3.2中插入相同数据的问题
2017/08/01 PHP
javascript hasFocus使用实例
2010/06/29 Javascript
仿百度输入框智能提示的js代码
2013/08/22 Javascript
弹出窗口并且此窗口带有半透明的遮罩层效果
2014/03/13 Javascript
ext中store.load跟store.reload的区别示例介绍
2014/06/17 Javascript
jquery使用$(element).is()来判断获取的tagName
2014/08/24 Javascript
javascript实现随时变化着的背景颜色
2015/04/02 Javascript
javascript给span标签赋值的方法
2015/11/26 Javascript
使用Jasmine和Karma对AngularJS页面程序进行测试
2016/03/05 Javascript
JavaScript数组的定义及数字操作技巧
2016/06/06 Javascript
js文件中直接alert()中文出来的是乱码的解决方法
2016/11/01 Javascript
学习JavaScript图片预加载模块
2016/11/07 Javascript
vue-router项目实战总结篇
2018/02/11 Javascript
使用react实现手机号的数据同步显示功能的示例代码
2018/04/03 Javascript
express + jwt + postMan验证实现持久化登录
2019/06/05 Javascript
JS 数组基本用法入门示例解析
2020/01/16 Javascript
[30:55]完美世界DOTA2联赛PWL S2 Magma vs LBZS 第二场 11.18
2020/11/18 DOTA
Python统计列表中的重复项出现的次数的方法
2014/08/18 Python
python pandas.DataFrame选取、修改数据最好用.loc,.iloc,.ix实现
2018/06/11 Python
python的继承知识点总结
2018/12/10 Python
pandas 强制类型转换 df.astype实例
2020/04/09 Python
详解BeautifulSoup获取特定标签下内容的方法
2020/12/07 Python
HTML5中外部浏览器唤起微信分享
2020/01/02 HTML / CSS
关于爱国的演讲稿
2014/05/07 职场文书
小学优秀班干部事迹材料
2014/05/25 职场文书
保证书格式
2015/01/16 职场文书
Python提取PDF指定内容并生成新文件
2021/06/09 Python
Vue全局事件总线你了解吗
2022/02/24 Vue.js