guan+pie

描述:当前是关于Echarts图表中的 示例。
 
            var top2URL = "/asset/get/s/data-1604298243112-wVMFKjFRU.png";
var top1URL = "/asset/get/s/data-1604298213716-BI27ZxE4S.png";
var imgURL = "/asset/get/s/data-1604297660027-BIglMnvCQ.png";
var piePatternImg = new Image();
piePatternImg.src = imgURL;

var top1Img = new Image();
top1Img.src = top1URL;
var top2Img = new Image();
top2Img.src = top2URL;


var i_data = 7;
var deg = 360 / i_data;
var angdeg = ((2*Math.PI)/360)*deg;
var r = 1;


var series_data = [];
for (var i = 0; i < i_data; i++) {
    var ideg = i * deg;
    var iangdeg = i*angdeg-90;
    var x = r * Math.cos(iangdeg);
    var y = r * Math.sin(iangdeg);
    console.log('====================',x,y);
    var x1 = 0,
        y1 = 0,
        x2 = 0,
        y2 = 0;
    if (x > 0) {
        x2 = x
    } else {
        x1 = Math.abs(x)
    }
    if (y > 0) {
        y2 = y
    } else {
        y1 = Math.abs(y)
    }
    // var x1 = r * Math.cos(iangdeg);
    // var y1 = r * Math.sin(iangdeg);
    // var x2 = r * Math.cos(iangdeg);
    // var y2 = r * Math.sin(iangdeg);
    console.log(x1, y1, x2, y2);
   
    series_data.push({
        stack: "fenshu",
        type: "bar",
        roundCap: true,
        barWidth: 40,
        label: {
            show: true,
            position: 'inside',
            formatter: (params) => {
                return 'aaa'
            }
        },
        data: [{
                value: i_data,
                itemStyle: {
                    normal: {
                        color: new echarts.graphic.LinearGradient(x1, y1, x2, y2, [{
                                offset: 0,
                                color: "rgba(101,15,36,0)",
                            }, {
                                offset: 0.05,
                                color: "rgba(101,15,36,0)",
                            },
                            {
                                offset: 1,
                                color: "rgba(116,27,49,1)",
                            },
                        ]),
                    }
                },
            },
            {
                value: i_data,
                itemStyle: {
                    normal: {
                        color: new echarts.graphic.LinearGradient(x1, y1, x2, y2, [{
                                offset: 0,
                                color: "rgba(14,63,95,0)",
                            }, {
                                offset: 0.05,
                                color: "rgba(14,63,95,0)",
                            },
                            {
                                offset: 1,
                                color: "rgba(20,73,107,1)",
                            },
                        ]),
                    }
                },
            },
        ],
        coordinateSystem: "polar",
        name: i + 'red',
        label: {
            show: true,
        },
    });

}


series_data.push({
    type: 'pie', //涟漪效果环
    zlevel: 20,
    silent: true,
    radius: ['45.9%', '46%'],
    hoverAnimation: false,
    // color: 'rgba(13,243,171,1)',
    color: '#fff',
    // animation:false,
    data: [1],
    labelLine: {
        normal: {
            show: false
        }
    },
    itemStyle: {
        normal: {
            color: 'rgba(13,243,171,0.1)',
            borderColor: 'rgba(13,243,171,0.01)',
        }
    }
});
series_data.push({
    type: 'pie',
    zlevel: 20,
    silent: true,
    radius: ['44.8%', '44.9%'],
    hoverAnimation: false,
    // color: 'rgba(13,243,171,1)',
    color: '#fff',
    // animation:false,
    data: [1],
    labelLine: {
        normal: {
            show: false
        }
    },
    itemStyle: {
        normal: {
            color: 'rgba(13,243,171,0.3)',
            borderColor: 'rgba(13,243,171,0.3)',
        }
    }
});
series_data.push({
    type: 'pie',
    zlevel: 20,
    silent: true,
    radius: ['43.7%', '43.8%'],
    hoverAnimation: false,
    // color: 'rgba(13,243,171,1)',
    color: '#fff',
    // animation:false,
    data: [1],
    labelLine: {
        normal: {
            show: false
        }
    },
    itemStyle: {
        normal: {
            color: 'rgba(13,243,171,0.5)',
            borderColor: 'rgba(13,243,171,0.5)',
        }
    }
});
series_data.push({
    type: 'pie',
    zlevel: 20,
    silent: true,
    radius: ['42.5%', '42.7%'],
    hoverAnimation: false,
    // color: 'rgba(13,243,171,1)',
    color: '#fff',
    // animation:false,
    data: [1],
    labelLine: {
        normal: {
            show: false
        }
    },
    itemStyle: {
        normal: {
            color: 'rgba(13,243,171,0.8)',
            borderColor: 'rgba(13,243,171,0.8)',
        }
    }
});
series_data.push({
    type: 'pie',
    zlevel: 20,
    silent: true,
    radius: ['41%', '41.5%'],
    hoverAnimation: false,
    // color: 'rgba(13,243,171,1)',
    color: '#fff',
    // animation:false,
    data: [1],
    labelLine: {
        normal: {
            show: false
        }
    },
    itemStyle: {
        normal: {
            color: 'rgba(13,243,171,1)',
            borderColor: 'rgba(13,243,171,1)',
        }
    }
});



series_data.push({
    type: 'pie',
    zlevel: 20,
    silent: true,
    radius: ['38%', '40%'],
    hoverAnimation: false,
    // color: 'rgba(13,243,171,1)',
    color: '#fff',
    // animation:false,
    data: [1],
    labelLine: {
        normal: {
            show: false
        }
    },
    itemStyle: {
        normal: {
            color: 'rgba(13,243,171,1)',
            borderColor: 'rgba(13,243,171,0.1)',
            borderWidth: 20,
            // shadowColor:'rgba(13,243,171,0.1)',
            // shadowBlur:50,
            // shadowOffsetX:10,
            // shadowOffsetY:50,
        }
    }
});



series_data.push({
    name: '中间环形图',
    type: 'pie',
    radius: ['0%', '30%'],
    avoidLabelOverlap: false,
    hoverAnimation: false,
    itemStyle: {
        normal: {
            color: 'rgba(13,243,171,0.5)',
            borderColor: 'rgba(13,243,171,1)',
            // color: {
            //     image: piePatternImg,
            //     repeat: 'no-repeat'
            // },
        }
    },
    label: {
        normal: {
            show: true,
            position: 'inside',
            rotate: true

        },
        emphasis: {
            show: false,
            textStyle: {
                fontSize: '30',
                fontWeight: 'bold'
            }
        }
    },
    labelLine: {
        normal: {
            show: false
        }
    },
    data: [{
            value: 5,
            name: '直接访问'
        },
        {
            value: 5,
            name: '邮件营销'
        },
        {
            value: 5,
            name: '联盟广告'
        },
        {
            value: 5,
            name: '视频广告'
        },
        {
            value: 5,
            name: '搜索引擎'
        },
        {
            value: 5,
            name: '直接访问'
        },
        {
            value: 5,
            name: '邮件营销'
        },
        {
            value: 5,
            name: '联盟广告'
        },
        {
            value: 5,
            name: '视频广告'
        },
        {
            value: 5,
            name: '搜索引擎'
        },
        {
            value: 5,
            name: '直接访问'
        },
        {
            value: 5,
            name: '邮件营销'
        },

    ]
});



option = {
    backgroundColor: 'rgba(0,46,32,1)',
    angleAxis: {
        max: i_data * i_data,
        show: true,
        // startAngle: 0,
        axisLabel: {
            show: true,
        },
        axisTick: {
            show: true,
        },
    },
    radiusAxis: {
        type: "category",
        show: true,
        axisLabel: {
            show: true,
        },
        axisLine: {
            show: true,
        },
        axisTick: {
            show: true,
        },
    },
    polar: {
        radius: ["70%", "100%"],
        center: ["50%", "50%"],
    },
    series: series_data
};

function _pie1() {
    let dataArr = [];
    for (var i = 0; i < 8; i++) {

        dataArr.push({
            name: (i + 1).toString(),
            value: 20,
            itemStyle: {
                normal: {
                    color: "rgba(88,142,197,0.4)",
                    borderWidth: 0,
                    borderColor: "rgba(0,0,0,0)"
                }
            }
        })

    }
    return dataArr

}

function _pie2() {
    let dataArr = [];
    for (var i = 0; i < 8; i++) {
        if (i % 2 === 0) {
            dataArr.push({
                name: (i + 1).toString(),
                value: 25,
                itemStyle: {
                    normal: {
                        color: "rgba(88,142,197,0.5)",
                        borderWidth: 0,
                        borderColor: "rgba(0,0,0,0)"
                    }
                }
            })
        } else {
            dataArr.push({
                name: (i + 1).toString(),
                value: 20,
                itemStyle: {
                    normal: {
                        color: "rgba(0,0,0,1)",
                        borderWidth: 0,
                        borderColor: "rgba(0,0,0,1)"
                    }
                }
            })
        }

    }
    return dataArr

}


var timer;
var pie_index = 11;

function doing() {
    if (pie_index < 6) {
        pie_index = 11;
    }
    let option = myChart.getOption();
    console.log('pie_index:', pie_index);
    console.log('111111', option);
    console.log('111111', option.series[pie_index]);
    option.angleAxis[0].startAngle = option.angleAxis[0].startAngle + 1;
    for (var i = 11; i > 6; i--) {
        if (i == pie_index) {
            option.series[pie_index].itemStyle.opacity = 0.5;
        } else {
            option.series[i].itemStyle.opacity = 1;
        }

    }


    myChart.setOption(option);
    pie_index -= 1;

}

function startTimer() {

    // timer = setInterval(doing, 300);

}

setTimeout(startTimer, 500);