echarts整合多個(gè)類似option的方法實(shí)例
前言
最近項(xiàng)目里面遇到一些圖表需要用echarts來做。而我之前只用過一次echarts,也只是做了一個(gè)簡單的餅狀圖,并沒有涉及到很多的配置。但是現(xiàn)在這個(gè)項(xiàng)目,這些圖表需要自己配置很多東西。像什么多余的網(wǎng)格線不顯示啊,每個(gè)柱子的不一樣的顏色漸變啊,這些都還好。問題在一個(gè)頁面有多個(gè)柱狀圖,而這些柱狀圖除了數(shù)據(jù)和顏色不一樣其他的都一毛一樣。最后模仿老大做的整合多個(gè)option自己做了一個(gè)demo,自己寫了詳細(xì)的注釋。
效果圖如下:
html代碼如下:
<!-- 為ECharts準(zhǔn)備一個(gè)具備大小(寬高)的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(){ //定義每個(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é)
以上就是這篇文章的全部內(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-01JavaScript進(jìn)階(二)詞法作用域與作用域鏈實(shí)例分析
這篇文章主要介紹了JavaScript詞法作用域與作用域鏈,結(jié)合實(shí)例形式分析了JavaScript詞法作用域與作用域鏈相關(guān)概念、原理與操作注意事項(xiàng),需要的朋友可以參考下2020-05-05js實(shí)現(xiàn)input密碼框提示信息的方法(附html5實(shí)現(xiàn)方法)
這篇文章主要介紹了js實(shí)現(xiàn)input密碼框提示信息的方法,涉及JavaScript頁面元素的獲取,屬性判斷及樣式設(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-12JavaScript 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-04VS Code轉(zhuǎn)換大小寫、修改選中文字或代碼顏色的方法
最近在使用VS Code,發(fā)現(xiàn)了不少使用的小技巧,覺著有必要給大家分享下,下面這篇文章主要給大家介紹了關(guān)于VS Code轉(zhuǎn)換大小寫、修改選中文字或代碼顏色的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),需要的朋友可以參考借鑒,下面來一起看看吧。2017-12-12bootstrap multiselect 多選功能實(shí)現(xiàn)方法
這篇文章主要介紹了bootstrap multiselect 多選功能實(shí)現(xiàn)方法,需要的朋友可以參考下2017-06-06