亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

echarts如何實(shí)現(xiàn)帶百分比的橫向柱狀圖

 更新時(shí)間:2021年12月12日 14:18:34   作者:粉末的沉淀  
近期在使用echart開(kāi)發(fā)過(guò)程中遇到一些問(wèn)題,需要開(kāi)發(fā)橫向柱狀圖,下面這篇文章主要給大家介紹了關(guān)于echarts如何實(shí)現(xiàn)帶百分比的橫向柱狀圖的相關(guā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)文章

最新評(píng)論