echarts整合多個(gè)類(lèi)似option的方法實(shí)例
前言
最近項(xiàng)目里面遇到一些圖表需要用echarts來(lái)做。而我之前只用過(guò)一次echarts,也只是做了一個(gè)簡(jiǎn)單的餅狀圖,并沒(méi)有涉及到很多的配置。但是現(xiàn)在這個(gè)項(xiàng)目,這些圖表需要自己配置很多東西。像什么多余的網(wǎng)格線(xiàn)不顯示啊,每個(gè)柱子的不一樣的顏色漸變啊,這些都還好。問(wèn)題在一個(gè)頁(yè)面有多個(gè)柱狀圖,而這些柱狀圖除了數(shù)據(jù)和顏色不一樣其他的都一毛一樣。最后模仿老大做的整合多個(gè)option自己做了一個(gè)demo,自己寫(xiě)了詳細(xì)的注釋。
效果圖如下:

html代碼如下:
<!-- 為ECharts準(zhǔn)備一個(gè)具備大?。▽捀撸┑腄om --> <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(){
//定義每個(gè)圖表的顏色數(shù)組,我這里是漸變色的柱子,有四個(gè)
var color = [ "#ad3f3b", "#df8380","#89a54e","#b7c894","#3c8d91","#78b1b5","#db853c","#f2b582"];
var dex = 0;
//遍歷裝圖表的盒子
for(var i = 1; i <= 4; i++){
//把echarts初始化圖表的方法提出來(lái)通過(guò)拼接id的方法找到每個(gè)div的id
var chart = echarts.init(document.getElementById('chart'+ i));
//把option做成一個(gè)變量,通過(guò)傳參來(lái)初始化每個(gè)圖 new echarts.graphic.LinearGradient是eachsrts柱子漸變的方法
//傳遞的參數(shù)有圖表的名字,漸變的顏色,和所對(duì)應(yīng)的單位
var option = this.optionFun("銷(xiāo)售額", new echarts.graphic.LinearGradient(0,0,0,1,[
{offset:0,color: color[dex++]},
{offset:1,color:color[dex++]}
]), "單位");
//常規(guī)操作 為echarts對(duì)象加載數(shù)據(jù)
chart.setOption(option);
}
},
//然后接下來(lái)都是一些echarts的一些常規(guī)配置
optionFun:function(title,color,unit){
var option = {
title:{
text:title,
left:'center',
textStyle:{
fontStyle:'normal',
fontSizeL:'14px',
},
top:'top',
},
xAxis:{
type:'category',
data:['目標(biāo)','完成'],
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,//后臺(tái)傳過(guò)來(lái)的數(shù)據(jù)[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;
}
}
其實(shí)后來(lái)發(fā)現(xiàn),echarts一些常規(guī)的配置在官方給的文檔里面都有,就是自己不太熟悉。最主要的還是自己掌握的東西太少了,不懂的融會(huì)貫通。也更加清楚了js對(duì)于一個(gè)前端來(lái)說(shuō)是多么的重要。而我自己也在不斷的努力中,很感謝我老大,很多不懂的地方問(wèn)他,他都會(huì)幫我解決。繼續(xù)加油吧。
注:這個(gè)配置目前不支持圖表數(shù)量超過(guò)所定義的顏色數(shù)量后顏色循環(huán),或許以后多研究下可以實(shí)現(xiàn),但是目前是不支持的。
總結(jié)
以上就是這篇文章的全部?jī)?nèi)容了,希望本文的內(nèi)容對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,如果有疑問(wèn)大家可以留言交流,謝謝大家對(duì)腳本之家的支持。
相關(guān)文章
如何動(dòng)態(tài)加載外部Javascript文件
這篇文章主要介紹了如何動(dòng)態(tài)加載外部Javascript文件,本文舉例講解使用js加載器動(dòng)態(tài)加載外部Javascript文件,感興趣的小伙伴們可以參考一下2015-12-12
小程序?qū)崿F(xiàn)按下錄音松開(kāi)識(shí)別語(yǔ)音
這篇文章主要為大家詳細(xì)介紹了小程序?qū)崿F(xiàn)按下錄音松開(kāi)識(shí)別語(yǔ)音,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2019-11-11
用Javascript評(píng)估用戶(hù)輸入密碼的強(qiáng)度(Knockout版)
早上看到博友6點(diǎn)多發(fā)的一篇關(guān)于密碼強(qiáng)度的文章(連接),甚是感動(dòng)(周末大早上還來(lái)發(fā)文)2011-11-11
webpack使用Symbol.toStringTag(Symbol.toStringTag用法)
Symbol.toStringTag是一個(gè)內(nèi)置 symbol,它通常作為對(duì)象的屬性鍵使用,對(duì)應(yīng)的屬性值應(yīng)該為字符串類(lèi)型,這個(gè)字符串用來(lái)表示該對(duì)象的自定義類(lèi)型標(biāo)簽,這篇文章主要介紹了webpack使用Symbol.toStringTag(Symbol.toStringTag用法),需要的朋友可以參考下2024-02-02
實(shí)例詳解JSON數(shù)據(jù)格式及json格式數(shù)據(jù)域字符串相互轉(zhuǎn)換
JSON(JavaScript Object Notation)是一種輕量級(jí)的數(shù)據(jù)交換格式。JSON采用完全獨(dú)立于語(yǔ)言的文本格式,這些特性使JSON成為理想的數(shù)據(jù)交換語(yǔ)言2016-01-01
理解Javascript_02_理解undefined和null
其實(shí)在 ECMAScript 的原始類(lèi)型中,是有Undefined 和 Null 類(lèi)型的。 這兩種類(lèi)型都分別對(duì)應(yīng)了屬于自己的唯一專(zhuān)用值,即undefined 和 null。2010-10-10
JS設(shè)置手機(jī)驗(yàn)證碼60s等待實(shí)現(xiàn)代碼
本文給大家分享JS設(shè)置手機(jī)驗(yàn)證碼60s等待實(shí)現(xiàn)代碼,需要的朋友參考下吧2017-06-06
使用CSS3的scale實(shí)現(xiàn)網(wǎng)頁(yè)整體縮放
QQ郵箱的網(wǎng)頁(yè)整體縮放效果,原來(lái)實(shí)現(xiàn)方法如此簡(jiǎn)單,下面有個(gè)實(shí)現(xiàn)示例,大家可以參考下2014-03-03

