千家信息网

echarts怎么实现带百分比的横向柱状图

发表于:2026-11-01 作者:千家信息网编辑
千家信息网最后更新 2026年11月01日,这篇文章主要讲解了"echarts怎么实现带百分比的横向柱状图",文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习"echarts怎么实现带百分比的横向柱状图
千家信息网最后更新 2026年11月01日echarts怎么实现带百分比的横向柱状图

这篇文章主要讲解了"echarts怎么实现带百分比的横向柱状图",文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习"echarts怎么实现带百分比的横向柱状图"吧!

实例代码

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之前,定义一个data数组,然后通过for循环获取数组中的最大值,保存为maxNum变量。

2、在series里定义两个bar,第一个bar的data通过map,设置value为步骤1里面的data,并且返回一个对象类型,对象包含了value和maxNum两个属性(value是必选属性,maxNum是一个自定义属性,如果有必要,还可以加其他自定义属性),之所以要加上maxNum这个属性,因为后面label的formatter需要使用value/maxNum来计算百分比,第一次遇到series里data返回为一个对象类型的写法,涨姿势了,对于获取数据进行计算真是太有用了。

3、series里第二个bar,也是通过map给data赋值,不同的是这个bar的value全部都设置为maxNum,第二个bar作为背景,相当于是100%进度。之所以还需要加一个realValue属性,因为在bar的右边还需要显示每一项的数值(220, 182, 191, 234, 290, 120, 65, 444这些)。

4、第一个bar在上面,第二个bar在下边,关键之处在于第一个bar的zlevel:2,然后第二个bar的barGap: '-100%'.

多看echarts官网的案例,真的受益匪浅。

感谢各位的阅读,以上就是"echarts怎么实现带百分比的横向柱状图"的内容了,经过本文的学习后,相信大家对echarts怎么实现带百分比的横向柱状图这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是,小编将为大家推送更多相关知识点的文章,欢迎关注!

百分 百分比 属性 横向 柱状 对象 学习 两个 之所以 代码 内容 数组 类型 不同 最大 必要 受益匪浅 关键 写法 变量 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 中国互联网科技工作委员会毛军 互联网和科技创新 互联网科技集团 长亮科技互联网金融 互联网企业和科技型企业 广州恒生互联网科技有限 宁夏科技产业互联网案例 厦门比较好的科技互联网公司 互联网与医疗科技 宜昌元轩互联网科技有限公司 华夏恒生科技与互联网科技 群盈汇互联网科技有限公司 城市宝互联网科技有限公司 四川互联网展示科技馆设计 宇信科技在杭州互联网排第几 35岁以上互联网科技行业 广州燕处互联网科技有限公司 杭州融税互联网科技有限公司 互联网高科技绘画 互联网科技创业有什么好项目 上海挚品互联网科技有限公司 山东特亿宝互联网科技有限公司 互联网与科技金融数据 互联网科技公司需要的职位 晓花互联网科技有限公司网址 乌苏新华互联网科技做什么的 互联网公司黑科技创始人 威龙国际互联网科技公司 爱医互联网络科技 上海互联网科技园景观
0