最近项目里面遇到一些图表需要用echarts来做。而我之前只用过一次echarts,也只是做了一个简单的饼状图,并没有涉及到很多的配置。但是现在这个项目,这些图表需要自己配置很多东西。像什么多余的网格线不显示啊,每个柱子的不一样的颜色渐变啊,这些都还好。问题在一个页面有多个柱状图,而这些柱状图除了数据和颜色不一样其他的都一毛一样。最后模仿老大做的整合多个option自己做了一个demo,自己写了详细的注释。效果图如下:

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对于一个前端来说是多么的重要。而我自己也在不断的努力中,很感谢我老大,很多不懂的地方问他,他都会帮我解决。继续加油吧。

注:这个配置目前不支持图表数量超过所定义的颜色数量后颜色循环,或许以后多研究下可以实现,但是目前是不支持的。

关于echarts整合多个类似option的更多相关文章

  1. 百度地图、ECharts整合HT for Web网络拓扑图应用

    前一篇谈及到了ECharts整合HT for Web的网络拓扑图应用,后来在ECharts的Demo中看到了有关空气质量的相关报表应用,就想将百度地图.ECharts和HT for Web三者结合起来 ...

  2. ECharts整合HT for Web的网络拓扑图应用

    ECharts图形组件在1.0发布的时候我就已经有所关注,今天在做项目的时候遇到了图标的需求,在HT for Web上也有图形组件的功能,但是在尝试了下具体实现后,发现HT for Web的图形组件是 ...

  3. ECharts整合HT&#160;for&#160;Web的网络拓扑图应用

    ECharts图形组件在1.0公布的时候我就已经有所关注.今天在做项目的时候遇到了图标的需求,在HTfor Web上也有图形组件的功能.可是在尝试了下详细实现后,发现HT for Web的图形组件是以 ...

  4. 将百度的ECharts整合到阿里的Weex中。

    由于公司的业务,之前PC版产品中,大量的使用了百度的ECharts库.所以现在要做移动端,在大概熟悉了Weex基本语法和搭建环境后,就着手研究如何将这两个好东西糅合起来. 首先,按照Weex官方教程, ...

  5. echarts图形报表缓存问题(option数据缓存)

    这几天我在工作中用到了echarts开发报表.每次查询出来的数据都是新的,但是echart展现的图形报表却还是之前的数据.网上找了搜索了很多次也没能解决,后面加了技术群才解决的. 我开始已经确定是报表 ...

  6. Echarts整合spring boot进行开发

    一.开始前的准备 Echarts官网下载: https://echarts.baidu.com/download.html

  7. ECharts+百度地图网络拓扑应用

    前一篇谈及到了ECharts整合HT for Web的网络拓扑图应用,后来在ECharts的Demo中看到了有关空气质量的相关报表应用,就想将百度地图.ECharts和HT for Web三者结合起来 ...

  8. ECharts+BaiduMap+HT for Web网络拓扑图应用

    前一篇谈及到了ECharts整合HT for Web的网络拓扑图应用,后来在ECharts的Demo中看到了有关空气质量的相关报表应用,就想将百度地图.ECharts和HT for Web三者结合起来 ...

  9. 时隔两个月再写的Echarts(Enterprise Charts,商业级数据图表)一文

    简介 ECharts,缩写来自Enterprise Charts,商业级数据图表,一个纯Javascript的图表库,可以流畅的运行在PC和移动设备上,兼容当前绝大部分浏览器(IE6/7/8/9/10 ...

随机推荐

  1. hello2详解

    1.GreetingServlet.java(显示问候页面表单) 此servlet重写该doGet方法,实现GETHTTP方法.servlet显示一个简单的HTML问候表单,其提交按钮就像hello1 ...

  2. Linux配置JDK1.8环境变量

     每次感觉配这个都很简单,但每次都要查一下,毕竟配错一点 后面都比较麻烦,记录一下,方便以后查看. linux 下安装jdk和windows下的安装是一样的,之前在windows安装的时候是先下载压缩 ...

  3. Sql server 0x80131904

    这是一个比较让人纠结的错误. 背景:添加了网站的分支,要拿一个现有的数据库做一个新的数据库的东东. 首先就是还原备份,然后做代码的修改.然而在登录的时候报了这个错误.0x80131904 什么插入的列 ...

  4. 基于Ajax与用户认证系统的登录验证

    一.登录页面 from django.contrib import admin from django.urls import path from blog import views urlpatte ...

  5. 前端(三大框架、Bootstrap,jQuery,自整理)

    前端,HTML(超文本标记语言),CSS(层叠样式表)和JavaScript(脚本语言) HTML,通常说的h5,其实按标准来说,HTML4的后续版本不带编号了,并保证向前的兼容性 CSS的版本3,增 ...

  6. 小米3 无法显示日志 Logcat

    需要ROOT权限 1. 使用文件浏览器进入  /system/etc/init.d/  目录 2.使用文本编辑器打开里面的  01Supertweak 这个文件 在最下面找到   rm /dev/lo ...

  7. 【阿里云产品公测】简单粗暴30S完成PTS测试配置附tornado服务器测试结果

    作者:阿里云用户morenocjm [阿里云产品公测]简单粗暴 30S完成PTS测试配置(附tornado服务器测试结果) -------------------------------------- ...

  8. Android基础Activity篇——创建一个活动(Activity)

    1.创建活动 首先用AS创建一个add no activity项目名使用ActivityTest,包名为默认的com.example.activitytest 2.右击app.java.com.exa ...

  9. libcurl 中使用curl_multi_perform()函数执行订阅类型url的问题

    前提概要 当需要同时处理多个url时,可采用curl_multi_perform方式执行,如下代码1: //初始化一个multi curl 对象 CURLM * curl_m = curl_multi ...

  10. php入门到精通(复习笔记)

    第一章:php语言基础 1,标记风格: ①<?php echo “hello”;?> ②<script language="php">echo " ...