花瓣饼图

描述:当前是关于Echarts图表中的 饼图 示例。
 
            /**特别声明**/
/**灵感来自开源 176******95 on 2 年前 的花瓣**/
/**感谢前面的引路人**/
let scaleData = [{
            'name': '花瓣1',
            'value': 10
        },
        {
            'name': '花瓣2',
            'value': 10
        },
        {
            'name': '花瓣3',
            'value': 30
        },
        {
            'name': '花瓣4',
            'value': 10
        },
        {
            'name': '花瓣5',
            'value': 10
        },
        ];
        // 随机颜色
        let rich = {
            white: {
                color: '#ddd',
                align: 'center',
                padding: [3, 0]
            }
        };
        let placeHolderStyle = {
            normal: {
                label: {
                    show: false
                },
                labelLine: {
                    show: false
                },
                color: 'rgba(0, 0, 0, 0)',
                borderColor: 'rgba(0, 0, 0, 0)',
                borderWidth: 0
            }
        };

        function bg2() {
            return '#' + Math.floor(Math.random() * 0xffffff).toString(16);
        }

        function rancolors(len) {
            let color = [];
            for (let i = 0; i <= len; i++) {
                let sjys = bg2();
                color.push(sjys);
                for (let i = 0; i < color.length; i++) {
                    if (color[i] = sjys) {
                        color[i] = bg2();
                    }
                }
            }
            return color;
        }
        let data = [];
        let color = rancolors(7)
        for (let i = 0; i < scaleData.length; i++) {
            data.push({
                value: scaleData[i].value,
                name: scaleData[i].name,
                itemStyle: {
                    normal: {
                        borderWidth: 40,
                        shadowBlur: 20,
                        borderColor: color[i],
                        shadowColor: color[i]
                    }
                }
            }, {
                value: 80,
                name: '',
                itemStyle: placeHolderStyle
            });
        }
        let seriesObj = [{
            name: '',
            type: 'pie',
            clockWise: false,
            radius: [30, 60],
            hoverAnimation: false,
            itemStyle: {
                normal: {
                    label: {
                        show: false,
                        position: 'outside',
                        color: '#ddd',
                        formatter: function (params) {
                            let percent = 0;
                            let total = 0;
                            for (let i = 0; i < scaleData.length; i++) {
                                total += scaleData[i].value;
                            }
                            percent = (params.value / total * 100).toFixed(0);
                            if (params.name !== '') {
                                return params.name + '\n{white|' + '占比' + percent + '%}';
                            }
                            return '';
                        },
                        rich: rich
                    },
                    labelLine: {
                        length: 6,
                        length2: 3,
                        show: false,
                        color: '#00ffff'
                    }
                }
            },
            data: data
        }];
        option = {
            grid: {
                left: 0,
            },
            backgroundColor: 'rgba(0,0,0,0)',
            title: {
                text: '77.65%',
                subtext: '优良率',
                x: 'center',
                y: 'center',
                textStyle: {
                    fontSize: 20,
                    color: "rgba(255, 240, 0, 1)",
                    fontStyle: "italic",
                },
                subtextStyle: {
                    fontSize: 16,
                    color: "rgba(255, 240, 255, 1)",
                }
            },
            xAxis: {
                show: false,
            },
            yAxis: {
                show: false,
            },
            tooltip: {
                show: false
            },
            legend: {
                show: false
            },
            toolbox: {
                show: false
            },
            series: seriesObj
        }