饼图

描述:当前是关于Echarts图表中的 饼图 示例。
 
            // mock数据
const dataArray = [
    {"NUM":152879,"REMARK":"使用情况","NAME":"其他"},
    {"NUM":6898,"NAME":"绿"},
    {"NUM":6898,"NAME":"红"},
]
const color = [
    // 绿颜色
    [{ offset: 0, color: '#bfedc0' }, { offset: 1, color: '#77dc7e' }],
    // 红颜色
    [{ offset: 0, color: '#f19bc1' }, { offset: 1, color: '#eb576f' }],
    // 其他颜色
    [{ offset: 0, color: '#accdff' }, { offset: 1, color: '#1976ff' }]
]

 // data数据
const echartData = dataArray.map((v, i) => ({
    name: v.NAME,
    value: v.NUM,
    itemStyle: { 
        // fixbug: 由于顺序可能是乱序的,所以这里根据 NAME 来匹配 color
        color: { 
            type: 'linear',  
            colorStops: v.NAME === '绿' 
                ? color[0] 
                    : v.NAME === '红' 
                    ? color[1]
                    : color[2]
        }
    }
}))

option = {
    tooltip: {
        trigger: 'item',
        formatter: '{b}: {c} ({d}%)',
        textStyle: { color: '#fff', fontSize: '110%'}
    },
    legend:  {
        show: false,
        bottom: '5%',
        // right: '5%',
        data: ['绿', '红', '其他'],
        textStyle:{ color: '#fff', fontSize: '100%'},
        itemGap : 20,
        textGap: 10,
        itemWidth: 25,
        itemHeight: 14
    },
    series: [
        {
            name: '使用情况',
            type: 'pie',
            radius: ['50%', '70%'],
            center: ['50%', '50%'],
            avoidLabelOverlap: false,
            label: {
                show: false,
                position: 'center'
            },
            labelLine: {
                show: false
            },
            data: echartData,
            emphasis:{ labelLine: { itemStyle: { shadowColor: 'rgba(250,250,250,0.2)', shadowBlur: 20 }}}
        },
         // 边框的设置
        {
            radius: ['52%', '72%'],
            center: ['50%', '50%'],
            type: 'pie',
            label: {  normal: { show: false }, emphasis: { show: false } },
            labelLine: { normal: { show: false }, emphasis: { show: false }},
            animation: false,
            tooltip: { show: false },
            // 阴影颜色
            itemStyle: { color:'rgba(250,250,250,0.2)'},
            data: [{ value: 1 }],
        }
    ]
};