const dataList = [
    {
        name: '小明',
        data: [54, 32, 56, 30, 95, 35],
        color: '#5470c6',
        unit: '分'
    },
    {
        name: '小红',
        data: [84, 63, 23, 59, 78, 95],
        color: '#91cc75',
        unit: '分'
    },
    {
        name: '小刚',
        data: [14, 98, 63, 74, 40, 67],
        color: '#fac858',
        unit: '分'
    }
]

const indicator = [
    { name: '语文', max: 100 },
    { name: '数学', max: 100 },
    { name: '英语', max: 100 },
    { name: '物理', max: 100 },
    { name: '化学', max: 100 },
    { name: '生物', max: 100 }
]

const buildSeries = function (dataIndex) {
    const data = dataList[dataIndex].data
    const helper = data.map((item, index) => {
        const arr = new Array(data.length)
        arr.splice(index, 1, item)
        return arr
    })
    return [data, ...helper].map((item, index) => {
        return {
            name: dataList[dataIndex].name,
            type: 'radar',
            symbol: index === 0 ? 'circle' : 'none',
            symbolSize: 4,
            itemStyle: {
                color: '#fff'
            },
            lineStyle: {
                color: index === 0 ? dataList[dataIndex].color : 'transparent'
            },
            areaStyle: {
                color: index === 0 ? dataList[dataIndex].color : 'transparent',
                opacity: 0.5
            },
            tooltip: {
                show: index === 0 ? false : true,
                formatter: () => {
                    let res = indicator[index - 1].name + ':<br>'
                    for (let x of dataList) {
                        let str = '<i style="display: inline-block;width: 10px;height: 10px;background: ' +
                            x.color + ';margin-right: 5px;border-radius: 50%;}"></i>' +
                            x.name + ':' + x.data[index - 1] + x.unit + '<br>'
                        res += str
                    }
                    return res

                }
            },
            z: index === 0 ? 1 : 2,
            data: [item]
        }
    })
}

const series = []
for (let i in dataList) {
    series.push(...buildSeries(i))
}

option = {
    tooltip: {},
    radar: {
        indicator: indicator
    },
    series: series
}

参考:https://www.jianshu.com/p/0281688f8700

原文地址:http://www.cnblogs.com/zqlym/p/16906104.html

1. 本站所有资源来源于用户上传和网络,如有侵权请邮件联系站长! 2. 分享目的仅供大家学习和交流,请务用于商业用途! 3. 如果你也有好源码或者教程,可以到用户中心发布,分享有积分奖励和额外收入! 4. 本站提供的源码、模板、插件等等其他资源,都不包含技术服务请大家谅解! 5. 如有链接无法下载、失效或广告,请联系管理员处理! 6. 本站资源售价只是赞助,收取费用仅维持本站的日常运营所需! 7. 如遇到加密压缩包,默认解压密码为"gltf",如遇到无法解压的请联系管理员! 8. 因为资源和程序源码均为可复制品,所以不支持任何理由的退款兑现,请斟酌后支付下载 声明:如果标题没有注明"已测试"或者"测试可用"等字样的资源源码均未经过站长测试.特别注意没有标注的源码不保证任何可用性