奉天各属疫毙人数职业比较

描述:当前是关于Echarts图表中的 饼图 示例。
 
            let dashedPic = 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAM8AAAAOBAMAAAB6G1V9AAAAD1BMVEX////Kysrk5OTj4+TJycoJ0iFPAAAAG0lEQVQ4y2MYBaNgGAMTQQVFOiABhlEwCugOAMqzCykGOeENAAAAAElFTkSuQmCC';
let color = ['#d73027', '#f46d43', '#fdae61', '#fee090', '#ffffbf', '#e0f3f8', '#abd9e9', '#74add1', '#4575b4'];
let chartData = [{
        name: "农       界",
        value: 1865,
    },
    {
        name: "苦       力",
        value: 1066,
    }, {
        name: "商       界",
        value: 676,
    }, {
        name: "未       详",
        value: 664,
    }, {
        name: "工       界",
        value: 608,
    }, {
        name: "无       业",
        value: 353,
    }, {
        name: "防疫人员",
        value: 73,
    },
    {
        name: "绅       学",
        value: 62,
    },
    {
        name: "军       人",
        value: 33,
    }
];
let arrName = [];
let arrValue = [];
let sum = 0;
let 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',
        clockWise: false,
        hoverAnimation: true,
        radius: [80 - i * 7 + '%', 75 - i * 7 + '%'],
        center: ["23%", "45%"],
        label: {
            show: false
        },
        data: [{
            value: v.value,
            name: v.name
        }, {
            value: sum - v.value,
            name: '',
            itemStyle: {
                color: "rgba(0,0,0,0)"
            },
            tooltip: {
                show: false
            }
        }]
    });
    pieSeries.push({
        name: '',
        type: 'pie',
        silent: true,
        z: 1,
        clockWise: false, //顺时加载
        hoverAnimation: false, //鼠标移入变大
        radius: [79 - i * 7 + '%', 76 - i * 7 + '%'],
        center: ["23%", "45%"],
        label: {
            show: false
        },
        data: [{
            value: 2.5,
            itemStyle: {
                color: 'rgba(0,0,0,0.1)'
            },
            tooltip: {
                show: false
            }
        }, {
            value: 2.5,
            name: '',
            itemStyle: {
                color: "rgba(0,0,0,0)"
            },
            tooltip: {
                show: false
            },
        }]
    });

    v.percent = (v.value / sum * 100).toFixed(1) + "%";
    lineYAxis.push({
        value: i,
        textStyle: {
            rich: {
                circle: {
                    color: color[i],
                    padding: [0, 5]
                }
            }
        }
    });
})


option = {
    backgroundColor: '#363636',
    title: [{
        text: '奉天各属疫毙人数职业比较',
        subtext: '数据来源:《东三省疫事报告书》奉天防疫总局,1911年',
        textAlign: "center",
        left: "32%",
        bottom: '3%',
        textStyle: {
            color: '#fff',
            fontSize: 25,
        },
        subtextStyle: {
            fontSize: 15,
        }
    }, {
        text: '备注',
        subtext: '一、奉天全省统辖 51 属,右表仅列有疫之 28 属,余则从略。\n\n二、右表绅学一栏,统士绅学生各项上流社会而言之。\n\n三、右表既就职业上区分疫死之多寡,故妇女疫毙者未为列入。\n\n       统计男子死者 5400 人,妇女死者 1558 人,共 6958 人。\n\n       就此表观之,农及苦力占最多数,其次工商无业者占 1/20 ,\n\n       防疫人员居 1/100 ,绅学军人占最少数。\n\n       若以男女比较,则女占 1/4 而弱,男占 3/4 而强。',
        //textAlign: "center",
        left: "27%",
        bottom: '18%',
        backgroundColor: 'rgba(0,0,0,0.1)',
        borderRadius: 10,
        padding: 18,
        textStyle: {
            color: '#fff',
            fontSize: 20,
        },
        subtextStyle: {
            fontSize: 15,
        }
    }],
    tooltip: {
        show: true,
        trigger: "item",
        formatter: "{b}<br>{c}人 ({d}%)",
        fontSize: 18
    },
    color: color,
    grid: {
        top: '4.5%',
        bottom: '64%',
        left: "27%",
        containLabel: true
    },
    yAxis: [{
        type: 'category',
        inverse: true,
        axisLine: {
            show: false
        },
        axisTick: {
            show: false
        },
        axisLabel: {
            formatter: function(params) {
                let item = chartData[params];
                console.log(item)
                return '{line|}{circle|●}{name|' + ' ' + item.name + ' ' + '}{bd||}{percent|' + ' ' + item.percent + ' ' + '}{value|' + item.value + '}'
            },
            interval: 0,
            inside: true,
            textStyle: {
                color: "#333",
                fontSize: 14,
                rich: {
                    line: {
                        width: 200,
                        height: 3,
                        backgroundColor: {
                            image: dashedPic
                        }
                    },
                    name: {
                        color: 'white',
                        fontSize: 16,
                    },
                    bd: {
                        color: 'white',
                        padding: [0, 5],
                        fontSize: 15,
                    },
                    percent: {
                        color: 'white',
                        fontSize: 16,
                    },
                    value: {
                        color: 'white',
                        fontSize: 16,
                        fontWeight: 500,
                        padding: [0, 0, 0, 20]
                    },
                }
            },
            show: true
        },
        data: lineYAxis
    }],
    xAxis: [{
        show: false
    }],
    series: pieSeries
};