雷达图

描述:当前是关于Echarts图表中的 雷达图 示例。
 
            let everyDepartment = {
  stages: [
    { name: '维护', max: 100 },
    { name: '活动', max: 100 },
    { name: '巡查', max: 100 },
    { name: '整改', max: 100 },
    { name: '值班', max: 100 },
  ],
  scores: [73, 87, 93, 80, 72],
};

function contains(arr, obj) {
  var i = arr.length;
  while (i--) {
    if (arr[i].name === obj) {
      return i;
    }
  }
  return false;
}
// 格式化数据
function formatNumber(n) {
  var b = parseInt(n).toString();
  var len = b.length;
  if (len <= 3) {
    return b;
  }
  var r = len % 3;
  return r > 0
    ? b.slice(0, r) + ',' + b.slice(r, len).match(/\d{3}/g).join(',')
    : b.slice(r, len).match(/\d{3}/g).join(',');
}
option = {
  backgroundColor: '#081A2F',
  color: ['#fff'],
  radar: {
    center: ['50%', '50%'],
    radius: '50%',
    triggerEvent: true,
    splitNumber: 6,
    name: {
      rich: {
        a: {
          color: '#B3BBD9',
          fontSize: 12,
          fontFamily: 'Microsoft YaHei',
          fontWeight: 'bold',
          lineHeight: 20,
        },
        b: {
          color: '#FFF',
          fontSize: 12,
          align: 'right',
          fontFamily: 'Microsoft YaHei',
          fontWeight: 'bold',
        },
        d: {
          color: '#fff',
          fontSize: 12,
          align: 'right',
          fontFamily: 'Microsoft YaHei',
          fontWeight: 'bold',
        },
        triggerEvent: true,
      },
      formatter: (a, index) => {
        let values = a.length > 6 ? a.slice(0, 6) + '...' : a;
        let i = contains(everyDepartment.stages, a); // 处理对应要显示的样式
        return `{b| ${formatNumber(everyDepartment.scores[i])}}{d|%}\n{a| ${values}}`;
      },
    },
    nameGap: '2',
    indicator: everyDepartment.stages,
    splitArea: {
      areaStyle: {
        color: [
          'rgba(38, 96, 144, .1)',
          'rgba(38, 96, 144, .2)',
          'rgba(38, 96, 144, .4)',
          'rgba(38, 96, 144, .6)',
          'rgba(38, 96, 144, .8)',
          'rgba(38, 96, 144, 1)',
        ].reverse(),
      },
    },
    // axisLabel:{//展示刻度
    //     show: true
    // },
    axisLine: {
      //指向外圈文本的分隔线样式
      lineStyle: {
        color: '#205278',
        width: 2,
      },
    },
    splitLine: {
      lineStyle: {
        width: 2,
        color: 'RGBA(24, 67, 101, 1)',
      },
    },
  },

  series: [
    {
      type: 'radar',
      symbol: 'circle',
      symbolSize: 10,
      lineStyle: {
        color: new echarts.graphic.LinearGradient(
          0,
          0,
          0,
          1,
          [
            {
              offset: 0,
              color: '#03AFFF',
            },
            {
              offset: 1,
              color: '#03AFFF',
            },
          ],
          false
        ),
        width: 2,
      },
      itemStyle: {
        color: '#fff ',
        borderColor: new echarts.graphic.LinearGradient(
          0,
          0,
          0,
          1,
          [
            {
              offset: 0,
              color: '#03AFFF',
            },
            {
              offset: 1,
              color: '#03AFFF',
            },
          ],
          false
        ),
        borderWidth: 2,
        opacity: 1,
      },
      data: [
        {
          value: everyDepartment.scores,
          name: '',
          itemStyle: {
            normal: {
              lineStyle: {
                color: '#000',
              },
              shadowColor: '#000',
              shadowBlur: 20,
            },
          },
          areaStyle: {
            normal: {
              color: 'RGBA(42, 151, 193, .8)',
            },
          },
        },
      ],
    },
  ],
};