echarts饼图 支持动态label

背景:
echarts饼图中心位置需要显示总数,在legend发生改变时,实时计算已选lengend的总数。

展示label

show: true
foramtter: 展示的格式
rich: 定义label的样式

series: [
    {
      label: {
        show: true,
        position: 'center',
        formatter: `{total|30}\r\n{text|总数}`,
        rich: {
          total: {
            fontSize: 32,
            lineHeight: 40,
            color: '#8b8c8f',
            fontWeight: 'bold'
          },
          text: {
            fontSize: 16,
            lineHeight: 22,
            color: '#8b8c8f',
            fontWeight: 'bold',
            padding: [7, 0, 0, 0]
          }
        }
      }
    }
 ]

注册legendselectchanged事件

echartsInstance.on('legendselectchanged', param => {
      if (param) {
        let { selected } = param;
        let data; // 原始数据, series[0].data
        // 汇总所有已选的legend数据
        let total = data.reduce((count, next) => {
				      count += selected[next.name] ? next.value : 0;
				      return count;
				    }, 0);
        // 重新刷新echarts视图
        e.setOption({
          series: [
            {
              label: {
                formatter: `{total|${total}}\n\r{text|总数}}`,
              },
            },
          ],
        });
      }
    });

echarts的setOption居然可以只更新某个属性,不需要重新初始化。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值