Echarts雷达图 将数值放在类目值下并根据数值大小设置不同背景色标注

Echarts雷达图 将数值放在类目值下并根据数值大小设置不同背景色标注

  • 目的:将雷达图数值放在类目值下并根据数值大小设置不同背景色标注
  • 实现:利用radar.name.rich.formatter
  • 代码:
let valueArr = [83,53,81,70,85,48,90,10,6]
tabChartRadarData(valueArr) {
            let indicator = [{ name: '数学', max: 100, min:0 },
                        { name: '语文', max: 100, min:0 },
                        { name: '英语', max: 100, min:0 },
                        { name: '化学', max: 100, min:0 },
                        { name: '物理', max: 100, min:0 },
                        { name: '生物', max: 100, min:0 },
                        { name: '体育', max: 100, min:0 },
                        { name: '音乐', max: 100, min:0 },
                        { name: '美术', max: 100, min:0 }]
            let myChart = echarts.init(document.getElementById('chartRadar'));
            let option = {
                color: ['#6DCDFF'],
                radar: {
                    center: ['50%','50%'],//调整雷达图的位置
                    indicator: indicator,
                    splitArea: {
                        show: true,
                    },
                },
                series: [{
                    type: 'radar',
                    data: [
                        {
                            value: valueArr,
                            symbolSize: 8,
                            areaStyle: {
                                color: '#AEE4FF'
                            }
                        }
                    ]
                }]
            };
            myChart.setOption(option)
            let i = -1
            let itemValue = 0
            myChart.setOption({
                radar: [
                    {
                        name: {
                            rich: {
                                a: {
                                    color: '#000',
                                    lineHeight: 16
                                },
                                b: {
                                    color: '#fff',
                                    align: 'center',
                                    backgroundColor: '#F2821D',//#F7C242,#B0DAAA,#CECECE
                                    padding: 2,
                                    borderRadius: 4
                                },
                                c:{
                                    color: '#fff',
                                    align: 'center',
                                    backgroundColor: '#F7C242',//#F7C242,#B0DAAA,#CECECE
                                    padding: 2,
                                    borderRadius: 4
                                },
                                d:{
                                    color: '#fff',
                                    align: 'center',
                                    backgroundColor: '#B0DAAA',//#F7C242,#B0DAAA,#CECECE
                                    padding: 2,
                                    borderRadius: 4
                                },
                                e:{
                                    color: '#fff',
                                    align: 'center',
                                    backgroundColor: '#CECECE',//#F7C242,#B0DAAA,#CECECE
                                    padding: 2,
                                    borderRadius: 4
                                }
                            },
                            formatter: (a,b)=>{
                                let isOdd = (valueArr.length % 2 != 0)
                                let nosplitArr = isOdd?[0,parseInt(valueArr.length/2),parseInt(valueArr.length/2)+1]:[0,parseInt(valueArr.length/2)]
                                console.log('splitArr',nosplitArr);
                                i++
                                let splitStr = '\n'
                                if(nosplitArr.includes(i)){
                                    splitStr = ' '
                                }
                                itemValue = parseInt(`${valueArr[i]}`)
                                if(itemValue > 80){
                                    return `{a|${a}}${splitStr}{b|${valueArr[i]}}`
                                }else if(itemValue > 60){
                                    return `{a|${a}}${splitStr}{c|${valueArr[i]}}`
                                }else if(itemValue > 50){
                                    return `{a|${a}}${splitStr}{d|${valueArr[i]}}`
                                }else{
                                    return `{a|${a}}${splitStr}{e|${valueArr[i]}}`
                                }    
                            }
                        }
                    }
                ]
            })
        },
  • 效果图:
    在这里插入图片描述
  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值