echarts如何實(shí)現(xiàn)帶百分比的橫向柱狀圖
實(shí)例代碼
var data = [220, 182, 191, 234, 290, 120, 65, 444]; var barWidth = 20; var maxNum = 0; for (var i = 0; i < data.length; i++) { if (data[i] > maxNum) { maxNum = data[i]; } } option = { backgroundColor: 'black', grid: { top: '10%', left: '20%', right: '10%', bottom: '0%', }, title: { text: '百分比柱子', }, xAxis: { show: false, }, yAxis: { data: data.map((item, index) => `data ${index}`), splitLine: { show: false, }, axisLabel: { textStyle: { fontSize: '80%', color: '#02afff' }, }, axisLine: { show: false, }, axisTick: false, }, series: [ { type: 'bar', barWidth: barWidth, zlevel: 2, data: data.map(function (item) { return { value: item, maxNum: maxNum, }; }), label: { show: true, position: 'inside', // distance: 80, align: 'center', formatter: function (params) { // return params.data.realValue; var percent = Number((params.data.value / params.data.maxNum) * 100).toFixed(2) + '%'; return percent; }, color: '#fff', fontSize: 12, }, itemStyle: { borderRadius: 10, color: new echarts.graphic.LinearGradient(0, 1, 1, 1, [ { offset: 0, color: '#395CFE' }, { offset: 1, color: '#2EC7CF' }, ]), }, }, { type: 'bar', barWidth: barWidth, barGap: '-100%', data: data.map(function (item) { return { realValue: item, value: maxNum, }; }), label: { show: true, position: 'right', distance: 80, align: 'right', formatter: function (params) { return params.data.realValue + ' 件'; }, color: '#02afff', fontSize: 18, }, itemStyle: { borderRadius: 10, color: 'rgba(3,169,244, 0.5)', }, }, ], };
效果圖
代碼解析
1、在option之前,定義一個(gè)data數(shù)組,然后通過(guò)for循環(huán)獲取數(shù)組中的最大值,保存為maxNum變量。
2、在series里定義兩個(gè)bar,第一個(gè)bar的data通過(guò)map,設(shè)置value為步驟1里面的data,并且返回一個(gè)對(duì)象類(lèi)型,對(duì)象包含了value和maxNum兩個(gè)屬性(value是必選屬性,maxNum是一個(gè)自定義屬性,如果有必要,還可以加其他自定義屬性),之所以要加上maxNum這個(gè)屬性,因?yàn)楹竺鎙abel的formatter需要使用value/maxNum來(lái)計(jì)算百分比,第一次遇到series里data返回為一個(gè)對(duì)象類(lèi)型的寫(xiě)法,漲姿勢(shì)了,對(duì)于獲取數(shù)據(jù)進(jìn)行計(jì)算真是太有用了。
3、series里第二個(gè)bar,也是通過(guò)map給data賦值,不同的是這個(gè)bar的value全部都設(shè)置為maxNum,第二個(gè)bar作為背景,相當(dāng)于是100%進(jìn)度。之所以還需要加一個(gè)realValue屬性,因?yàn)樵赽ar的右邊還需要顯示每一項(xiàng)的數(shù)值(220, 182, 191, 234, 290, 120, 65, 444這些)。
4、第一個(gè)bar在上面,第二個(gè)bar在下邊,關(guān)鍵之處在于第一個(gè)bar的zlevel:2,然后第二個(gè)bar的barGap: '-100%'.
多看echarts官網(wǎng)的案例,真的受益匪淺。
總結(jié)
到此這篇關(guān)于echarts如何實(shí)現(xiàn)帶百分比的橫向柱狀圖的文章就介紹到這了,更多相關(guān)echarts百分比橫向柱狀圖內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
JS實(shí)現(xiàn)的數(shù)字格式化功能示例
這篇文章主要介紹了JS實(shí)現(xiàn)的數(shù)字格式化功能,結(jié)合實(shí)例形式分析了javascript針對(duì)數(shù)字與字符的相關(guān)運(yùn)算處理技巧,需要的朋友可以參考下2017-02-02firefox火狐瀏覽器與與ie兼容的2個(gè)問(wèn)題總結(jié)
這幾天遇到幾個(gè)頭疼的火狐與ie兼容問(wèn)題整理下來(lái),希望對(duì)需要的朋友有所幫助。2010-07-07JavaScript實(shí)現(xiàn)數(shù)組隨機(jī)排序的方法
這篇文章主要介紹了JavaScript實(shí)現(xiàn)數(shù)組隨機(jī)排序的方法,涉及javascript數(shù)組遍歷與排序的相關(guān)技巧,需要的朋友可以參考下2015-06-06javascript 刪除數(shù)組元素和清空數(shù)組的簡(jiǎn)單方法
這篇文章主要介紹了javascript 刪除數(shù)組元素和清空數(shù)組的簡(jiǎn)單方法的相關(guān)資料,需要的朋友可以參考下2017-02-02use jscript List Installed Software
use jscript List Installed Software...2007-06-06