在自定义的方法中定义一个sum,通过reduce,求value值的和。
在formatter中引用sum,求出百分比,我这边是保留了两位小数。
下面附上具体代码
var opt = profit.series[0];
var sum = 0;
lineHide(opt);
function lineHide(opt) {
let dataValue = opt.data.map((item, index) => {
return Object.assign({}, { 'value': item.value })
})
//求和
sum = dataValue.reduce((prev, next) => {
return prev + next.value;
}, 0);
//判断value为0,图例不显示
opt.data.forEach(item => {
if (item.value == 0) {
item.name = ''
}
})
}
//在formatter中引用
formatter: function ({ data }) {
let dataV = formatNumber((data.value / sum) * 100)
let html = `{b| ${data.name}}\n{c|${dataV}%}`;
return html
},
让文字与色块保持一致,可以看另外一篇博客 附上链接:https://blog.csdn.net/HUSKle/article/details/112858716