Donut 1

描述:当前是关于Echarts图表中的 饼图 示例。
 
            let list = [
    { percent: 3.45, name: "10岁以下", value: 174 },
    { percent: 6.9, name: "10-18岁", value: 254 },
    { percent: 10.34, name: "18-30岁", value: 343 },
    { percent: 41.38, name: "30-40岁", value: 1255 },
    { percent: 3.45, name: "40-60岁", value: 1442 },
    { percent: 16, name: "60岁以上", value: 1045 }
]
let sum = list.reduce((cur, pre) => {
    return cur + pre.value;
}, 0);
var nameArray = list.map(item => {
    return item.name + '\t\t\t' + item.value + '个' + '\t\t\t' + item.percent + '%'
})

var color = ['#36F097', '#3DFFDC', '#5A3FFF', '#268AFF', '#1ED6FF', '#ADE1FF']
var data = [];
for (var i = 0; i < list.length; i++) {
    data.push({
        value: list[i].value,
        name: list[i].name + '\t\t\t' + list[i].value + '个' + '\t\t\t' + list[i].percent + '%',
        itemStyle: {
            borderWidth: 6,
            borderColor: color[i],
        }
    });
}
option = {
    backgroundColor: "#061740",
    color: color,
    tooltip: {
        trigger: 'item'
    },
    title: {
        text: sum,
        subtext: 'Total',
        left: '40%',
        top: '45%',
        textAlign :'center',
        textStyle: {
            color: '#fff',
            fontSize: 48,
        },
        subtextStyle: {
            fontSize: 28,
            color: 'rgba(255, 255, 255, 0.60)'
        },
    },
    legend: [{
        orient: 'vertical',
        data: nameArray,
        icon: 'rect',
        left: 'right',
        top: 'center',
        align: 'left',
        itemGap: 30,
        textStyle: {
            color: '#fff',
            fontSize: "1rem",
        },
        //图例标记的图形高度
        itemHeight: 10,
        //图例标记的图形宽度
        itemWidth: 10,
    }],
    series: [{
        name: '',
        type: 'pie',
        clockwise: false,
        radius: ['70%', '90%'],
        width: "80%",
        height: "55%",
        emphasis: {
            scale: false
        },
        center: ['50%', '50%'],
        top: "center",
        label: {
            show: false,
            position: 'inside',
            color: '#fff',
            formatter: function (params) {
                console.log(params)
                return params.percent + '%'
            }
        },
        data: data
    }]
};