圆形统计图

描述:当前是关于Echarts图表中的 饼图 示例。
 
            var dashedPic = 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAM8AAAAOBAMAAAB6G1V9AAAAD1BMVEX////Kysrk5OTj4+TJycoJ0iFPAAAAG0lEQVQ4y2MYBaNgGAMTQQVFOiABhlEwCugOAMqzCykGOeENAAAAAElFTkSuQmCC';
var color = ['#FEC47A', '#3CA3F3', '#1875F0'];
var getname=['西部','中部','东部'];
var getvalue=[2459,208,156];
var chartData = [];
for(var i = 0;i<getname.length;i++){
	chartData.push({name:getname[i],value:getvalue[i]})
}

var arrName = [];
var arrValue = [];
var sum = 0;
var pieSeries = [],
    lineYAxis = [];

// 数据处理
chartData.forEach((v, i) => {
    arrName.push(v.name);
    arrValue.push(v.value);
    sum = sum + v.value;
})

// 图表option整理
chartData.forEach((v, i) => {
    pieSeries.push({
        name: '学历',
        type: 'pie',
        startAngle:270,
        clockWise: true,
        hoverAnimation: false,
        radius: [35 + i * 15 + '%', 30 + i * 15 + '%'],
        center: ["50%", "50%"],
        label: {
            show: false
        },
        data: [{
            value: v.value,
            name: v.name
        }, {
            value: sum - v.value,
            name: '',
            itemStyle: {
                color: "rgba(0,0,0,0)"
            }
        }]
    });
    pieSeries.push({
        name: '',
        type: 'pie',
        silent: true,
        z: 1,
        startAngle:270,
        clockWise: true, //顺时加载
        hoverAnimation: false, //鼠标移入变大
        radius: [35 + i * 15 + '%',30 + i * 15 + '%'],
        center: ["50%", "50%"],
        label: {
            show: false
        },
        data: [{
            value: 10,
            itemStyle: {
                color: "#E3F0FF",
            }
        }, {
            value: 2,
            name: '',
            itemStyle: {
                color: "rgba(0,0,0,0)"
            }
        }]
    });
    v.percent = (v.value / sum * 100).toFixed(1) + "%";
    lineYAxis.push({
        value: i,
        textStyle: {
            rich: {
                circle: {
                    color: color[i],
                    padding: [0, 5]
                }
            }
        }
    });
})

option = {
    backgroundColor: '#fff',
    color: color,
    grid: {
        top: '63%',
        bottom: '15%',
        left: "50%",
        containLabel: false
    },
    yAxis: [{
        type: 'category',
        inverse: true,
        axisLine: {
            show: false
        },
        axisTick: {
            show: false
        },
        axisLabel: {
            formatter: function(params) {
                let item = chartData[params];
                console.log(item)
                return '{circle|●} {name|'+ item.name +'}   {percent|'+item.percent+'}'
            },
            interval: 0,
            inside: true,
            textStyle: {
                color: "#333",
                fontSize: 14,
                rich: {
                    line: {
                        width: 170,
                        height: 10,
                        backgroundColor: {image: dashedPic}
                    },
                    name: {
                        color: '#666666',
                        fontSize: 13,
                    },
                    percent:{
                        color: '#333333',
                        fontSize: 16,
                    },
                }
            },
            show: true
        },
        data: lineYAxis
    }],
    xAxis: [{
        show: false
    }],
    series: pieSeries
};