Echarts 扇形图标 扇形中间添加颜色和数据 图例后的汉字自定义颜色 和图例后添加百分比

1. 扇形中间添加颜色和数据   option 里面的代码

state.optionPlannedWaterWithdrawal = {
            tooltip: {
              trigger: 'item'
            },
            legend: {
              orient: 'vertical',
              top: '10%',
              right: '18%',
              data: ['第一泄洪道', '小青龙河', '滦柏输水干渠', '其他'],
              formatter: (name) => {
                const value = arrAll.filter(x => x.name == name)[0].value;
                if(name == '第一泄洪道'){
                  return '{name|' + name + '}{value|' + value + 'm³}'
                }else if(name == '小青龙河'){
                  return '{name|' + name + '}{value1|' + value + 'm³}'
                }else if(name == '滦柏输水干渠'){
                  return '{name|' + name + '}{value2|' + value + 'm³}'
                }else if(name == '其他'){
                  return '{name|' + name + '}{value3|' + value + 'm³}'
                }
              },
              textStyle: {
                rich: {
                  name: {
                    fontSize: 15,
                    align: 'right',
                    padding: [0, 0, 0, 10],
                    // lineHeight: 40,
                  },
                  value: {
                    fontSize: 15,
                    align: 'right',
                    padding: [0, 0, 0, 10],
                    color: '#63F3DF',
                  },
                  value1: {
                    fontSize: 15,
                    align: 'right',
                    padding: [0, 0, 0, 10],
                    color: '#9A67FF',
                  },
                  value2: {
                    fontSize: 15,
                    align: 'right',
                    padding: [0, 0, 0, 10],
                    color: '#63F371',
                  },
                  value3: {
                    fontSize: 15,
                    align: 'right',
                    padding: [0, 0, 0, 10],
                    color: '#2D5BFF',
                  }, 
                }
              }
            },
            series: [
              {
                name: '地表水',
                type: 'pie',
                radius: ['60%', '70%'],
                avoidLabelOverlap: false,
                itemStyle: {
                  borderRadius: 10,
                  borderColor: '#fff',
                  borderWidth: 2
                },
                tooltip: {
                  valueFormatter: function (value) {
                    return value + 'm³';
                  }
                },
                color: ['#63F3DF', '#9A67FF', '#63F371', '#2D5BFF',],
                label: {
                  show: true,
                  position: 'center',
                  formatter: ['{a|32.689万m³}', '{b|实际取数量}'].join('\n'),
                  width: 86,
                  height: 86,
                  fontSize: 16,
                  fontWeight: 'bold',
                  backgroundColor: '#e8ddff',
                  shadowColor: '#e3e3e3',
                  shadowBlur: 15,
                  borderRadius: 39,
                  rich: {
                    a: {
                      padding: [60, 0, 0, 0],
                      color: '#000',
                      fontSize: 13,
                      fontWeight: 600,
                      lineHeight: 13
                    },
                    b: {
                      padding: [70, 0, 0, 0],
                      color: '#000',
                      fontSize: 12,
                      lineHeight: 16
                    }
                  }
                },
                labelLine: {
                  show: false
                },
                data: [
                  { value: 1048, name: '第一泄洪道' },
                  { value: 735, name: '小青龙河' },
                  { value: 735, name: '滦柏输水干渠' },
                  { value: 735, name: '其他' },
                ]
              }
            ]
          };

2.添加百分比

state.reportOption = {
          tooltip: {
            trigger: "item",
          },
          legend: {
            orient: 'vertical',
            right: '0%',
            top: 'center',
            data: arrs,
            formatter: (name) => {
              let total = 0
              let target
              const value = state.deptCountList.filter(x => x.name == name)[0].value
              for (let i = 0, l = state.deptCountList.length; i < l; i++) {
                total += state.deptCountList[i].value
                if (state.deptCountList[i].name == name) {
                  target = state.deptCountList[i].value
                }
              }
              const arr = [
                '{name|' + name + '}{percentage|' + ((target / total) * 100).toFixed(2) + '%}{value|' + value + '}'
              ]
              return arr.join('\n')
            },
            textStyle: {
              rich: {
                name: {
                  fontSize: 15,
                  align: 'right',
                  padding: [10, 10, 10, 0],
                  lineHeight: 40,
                },
                value: {
                  fontSize: 15,
                  align: 'right',
                  padding: [10, 10, 10, 0],
                  lineHeight: 40,
                },
                percentage: {
                  fontSize: 15,
                  align: 'right',
                  padding: [10, 10, 10, 0],
                  lineHeight: 40,
                },
              }
            }
          },
          series: [
            {
              name: "告警统计",
              type: "pie",
              radius: ["30%", "60%"],
              avoidLabelOverlap: false,
              label: {
                show: false,
                position: "center",
              },
              emphasis: {
                label: {
                  show: true,
                  fontSize: 20,
                },
              },
              labelLine: {
                show: false,
              },
              data: state.deptCountList,
            },
          ],
        }

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值