echarts整合多個(gè)類似option的方法實(shí)例
前言
最近項(xiàng)目里面遇到一些圖表需要用echarts來做。而我之前只用過一次echarts,也只是做了一個(gè)簡(jiǎn)單的餅狀圖,并沒有涉及到很多的配置。但是現(xiàn)在這個(gè)項(xiàng)目,這些圖表需要自己配置很多東西。像什么多余的網(wǎng)格線不顯示啊,每個(gè)柱子的不一樣的顏色漸變啊,這些都還好。問題在一個(gè)頁(yè)面有多個(gè)柱狀圖,而這些柱狀圖除了數(shù)據(jù)和顏色不一樣其他的都一毛一樣。最后模仿老大做的整合多個(gè)option自己做了一個(gè)demo,自己寫了詳細(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初始化圖表的方法提出來通過拼接id的方法找到每個(gè)div的id
var chart = echarts.init(document.getElementById('chart'+ i));
//把option做成一個(gè)變量,通過傳參來初始化每個(gè)圖 new echarts.graphic.LinearGradient是eachsrts柱子漸變的方法
//傳遞的參數(shù)有圖表的名字,漸變的顏色,和所對(duì)應(yīng)的單位
var option = this.optionFun("銷售額", 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);
}
},
//然后接下來都是一些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)傳過來的數(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í)后來發(fā)現(xiàn),echarts一些常規(guī)的配置在官方給的文檔里面都有,就是自己不太熟悉。最主要的還是自己掌握的東西太少了,不懂的融會(huì)貫通。也更加清楚了js對(duì)于一個(gè)前端來說是多么的重要。而我自己也在不斷的努力中,很感謝我老大,很多不懂的地方問他,他都會(huì)幫我解決。繼續(xù)加油吧。
注:這個(gè)配置目前不支持圖表數(shù)量超過所定義的顏色數(shù)量后顏色循環(huán),或許以后多研究下可以實(shí)現(xiàn),但是目前是不支持的。
總結(jié)
以上就是這篇文章的全部?jī)?nèi)容了,希望本文的內(nèi)容對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,如果有疑問大家可以留言交流,謝謝大家對(duì)腳本之家的支持。
相關(guān)文章
數(shù)據(jù)排序誰最快(javascript中的Array.prototype.sort PK 快速排序)
今天在51js論壇中看到一個(gè)網(wǎng)友發(fā)布了一個(gè)javasctipt實(shí)現(xiàn)的快速排序的算法,前些日子工作中也涉及到j(luò)avasctipt中數(shù)據(jù)排序的應(yīng)用,當(dāng)時(shí)為了提高排序速度,使用的也是快速排序的算法。2007-01-01
JavaScript進(jìn)階(二)詞法作用域與作用域鏈實(shí)例分析
這篇文章主要介紹了JavaScript詞法作用域與作用域鏈,結(jié)合實(shí)例形式分析了JavaScript詞法作用域與作用域鏈相關(guān)概念、原理與操作注意事項(xiàng),需要的朋友可以參考下2020-05-05
js實(shí)現(xiàn)input密碼框提示信息的方法(附html5實(shí)現(xiàn)方法)
這篇文章主要介紹了js實(shí)現(xiàn)input密碼框提示信息的方法,涉及JavaScript頁(yè)面元素的獲取,屬性判斷及樣式設(shè)置等技巧,并附帶html5的相關(guān)實(shí)現(xiàn)方法,需要的朋友可以參考下2016-01-01
利用 JavaScript 實(shí)現(xiàn)并發(fā)控制的示例代碼
這篇文章主要介紹了利用 JavaScript 實(shí)現(xiàn)并發(fā)控制的示例代碼,本文通過實(shí)例代碼給大家介紹的非常想詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-12-12
JavaScript Serializer序列化時(shí)間處理示例
JavaScriptSerializer序列化時(shí)間后會(huì)把時(shí)間序列化成N進(jìn)制的鬼數(shù)據(jù) ,下面有個(gè)示例,需要的朋友可以了解下2014-07-07
在線所見即所得HTML編輯器的實(shí)現(xiàn)原理淺析
這篇文章主要介紹了在線所見即所得HTML編輯器的實(shí)現(xiàn)原理淺析,本文用初始化、打開編輯功能、獲取編輯器的內(nèi)容、增加樣式設(shè)置、再進(jìn)一步等步驟闡述在線編輯器的基本實(shí)現(xiàn)原理,需要的朋友可以參考下2015-04-04
VS Code轉(zhuǎn)換大小寫、修改選中文字或代碼顏色的方法
最近在使用VS Code,發(fā)現(xiàn)了不少使用的小技巧,覺著有必要給大家分享下,下面這篇文章主要給大家介紹了關(guān)于VS Code轉(zhuǎn)換大小寫、修改選中文字或代碼顏色的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),需要的朋友可以參考借鑒,下面來一起看看吧。2017-12-12
bootstrap multiselect 多選功能實(shí)現(xiàn)方法
這篇文章主要介紹了bootstrap multiselect 多選功能實(shí)現(xiàn)方法,需要的朋友可以參考下2017-06-06

