有的时候业务会有在图例上边分别显示数据
的情况,多数情况为数量或比例,我以比例为例给大家做一个演示,话不多说直接上代码。
legend: {
orient: 'vertical',
x: 'right', //可设定图例在左、右、居中
y: 'center', //可设定图例在上、下、居中
align: 'left', // 文字位置
itemHeight: 16, // 每个图例的宽度
itemWidth: 16, // 每个图例的高度
// 重写legend显示样式
formatter: function (name: string) {
// 获取legend显示内容
let data = option.series[0].data;
let total = 0;
let tarValue = 0;
for (let i = 0, l = data.length; i < l; i++) {
total += data[i].value;
if (data[i].name == name) {
tarValue = data[i].value;
}
}
let p = ((tarValue / total) * 100).toFixed(0);
return name + ' ' + ' ' + p + '%';
},
data: ['北京', '上海', '深圳', '广州', '其它']
},