圆形图, 数据汇聚

描述:当前是关于Echarts图表中的 饼图 示例。
 
            var scaleData = [{
        'name': '这个图真难',
        'value': 4000,
        'value1': 421200,
        'part': 6, // 定死圆环的宽度, 否则数据出现两极化
    },
    {
        'name': '难死了, 我不会用圆点来渐变',
        'value': 100, 
        'value1': 10210, 
        'part': 5,
    },
    {
        'name': '我是排好序的数据',
        'value': 90,
        'value1': 200,
        'part': 4,
        
    },
    {
        'name': '我是模块固定死的',
        'value': 60,
        'value1': 100,
        'part': 3,
    },
    {
        'name': '只展示前5个 其他的都用其他',
        'value': 10,
        'value1': 12,
        'part': 2,
    },
    {
        'name': '其他',
        'value': 1,
        'value1': 8,
        'part': 1,
    },
  
];
var rich = {
    circle: {
        color: '#333',
        fontSize: 5,
        fontFamily: 'Arial',
        borderWidth: 3,
        backgroundColor: '#984455',
        padding: [1, 1, 1, 1],
        width: 0,
        height: 0,
        lineHeight: 20,
        borderColor: 'red',
        borderWidth: 20,
        position: ['10', '20'],
        borderRadius: '50%',
    },
};
var placeHolderStyle = {
    normal: {
        label: {
            show: false
        },
        labelLine: {
            show: false
        },
        color: 'rgba(0, 0, 0, 0)',
        // borderColor: 'rgba(0, 0, 0, 0)',
        borderWidth: 0
    }
};
var data = [];
var data1 = [];
var data2 = [];
var color=['red','#00cfff','#006ced','#ffe000','#ffa800','#ff5b00','#ff3000']
var color1=['red','red','red','#ffe000','#ffa800','#ff5b00','#ff3000']
for (var i = 0; i < scaleData.length; i++) {
    data.push({
        value: scaleData[i].part,
        total: scaleData[i].value,
        valueCopy: scaleData[i].value1,
        name: scaleData[i].name,
        itemStyle: {
            normal: {
                borderWidth: 8,
                // borderColor:color[i],
                color: color[i],
            }
        }
    }, {
        value: 0.5,
        name: '',
        tooltip: {
        show: false,
    },
        itemStyle: placeHolderStyle
    });
    data1.push({
        value: scaleData[i].part,
        total: scaleData[i].value,
        valueCopy: scaleData[i].value1,
        name: scaleData[i].name,
        itemStyle: {
            normal: {
                borderWidth: 8,
                // borderColor:color1[i],
                // color: '#ccc',
            }
        }
    }, {
        value: 0.5,
        name: '',
        tooltip: {
        show: false,
    },
        itemStyle: placeHolderStyle,
    });
    data2.push({
        value: scaleData[i].part,
        total: scaleData[i].value,
        valueCopy: scaleData[i].value1,
        name: scaleData[i].name,
        itemStyle: {
            normal: {
                borderWidth: 8,
                // borderColor:color1[i],
                // color: '#ccc',
            }
        }
    }, {
        value: 2,
        name: '',
        tooltip: {
        show: false,
    },
        itemStyle: placeHolderStyle
    });
}
var seriesObj = [{ // 最外圈

    name: '',
     tooltip: {
        show: false,
    },
    type: 'pie',
    zlevel: '-2',
    radius: ['82%', '82.5%'],
    clockWise: false,
    hoverAnimation: false,
    itemStyle: {
        normal: {
            color: '#D9D9D9',
            label: {
                show: true,
                position: 'outside',
                color: '#666',
                formatter: function(params) {
                    var percent = 0;
                    var total = 0;
                    for (var i = 0; i < scaleData.length; i++) {
                        total += scaleData[i].value;
                    }
                    percent = ((params.value / total) * 100).toFixed(0);
                    if(params.name !== '' && params.name.length > 5) {
                        return params.name.substring(0, 5) + '...';
                    } else if (params.name !== '' && params.name.length <= 5) {
                        return params.name;
                    } else {
                        return '';
                    }
                },
                rich: rich
            },
            labelLine: {
                length:3,
                length2:0,
                show: true,
                color:'#00ffff'
            }
        }
    },
    data: data1
}, {
    name: '',
    type: 'pie',
    radius: ['75%', '80%'],
    clockWise: false,
    hoverAnimation: false,
    // zlevel: '',
    itemStyle: {
        normal: {
            label: {
                show: false,
                position: 'inside',
                color: '#ddd',
                // formatter: function(params) {
                //     if(params.name !== '') {
                //         return params.name;
                //     }else {
                //         return '';
                //     }
                // },
                // rich: rich
            },
            labelLine: {
                length:30,
                length2:100,
                show: true,
            }
        }
    },
    data: data
},
// { // 最大方块
//     name: '',
//     type: 'pie',
//     tooltip: {
//         show: false,
//     },
//     zlevel: '-2',
//     radius: ['65%', '65%'],
//     clockWise: false,
//     hoverAnimation: false,
//     // backgroundColor: 'transparent',
//     itemStyle: {
//         normal: {
//             label: {
//                 show: true,
//                 position: 'outside',
//                 color: 'transparent',
//                 formatter: function(params) {
//                     if(params.name !== '') {
//                         return '';
//                     }else {
//                         return '';
//                     }
//                 },
//                 // rich: rich
//             },
//             labelLine: {
//                 length:20,
//                 length2:0,
//                 show: true,
//                 smooth: true,
//                 color:'#00ffff',
//                 lineStyle: {
//                     width: 20,
//                     type: 'dotted',
//                     opacity: '1'
//                 }
//             }
//         }
//     },
    
//     data: data
// },
// { // 第二方块
//     name: '',
//     type: 'pie',
//     tooltip: {
//         show: false,
//     },
//     zlevel: '-4',
//     radius: ['55%', '55%'],
//     clockWise: false,
//     hoverAnimation: false,
//     itemStyle: {
//         normal: {
//             label: {
//                 show: true,
//                 position: 'outside',
//                 color: 'transparent',
//                 formatter: function(params) {
//                     if(params.name !== '') {
//                         return '';
//                     }else {
//                         return '';
//                     }
//                 },
//                 // rich: rich
//             },
//             labelLine: {
//                 length:10,
//                 length2:0,
//                 color:'#00ffff',
//                 lineStyle: {
//                     width: 10,
//                     type: 'dotted',
//                     opacity: '0.8'
//                 }
//             }
//         }
//     },
    
//     data: data
// },
// { // 第二方块
//     name: '',
//     type: 'pie',
//     zlevel: '-5',
//     tooltip: {
//         show: false,
//     },
//     radius: ['45%', '45%'],
//     clockWise: false,
//     hoverAnimation: false,
//     itemStyle: {
//         normal: {
//             label: {
//                 show: true,
//                 position: 'outside',
//                 color: 'transparent',
//                 formatter: function(params) {
//                     if(params.name !== '') {
//                         return '';
//                     }else {
//                         return '';
//                     }
//                 },
//                 rich: rich
//             },
//             labelLine: {
//                 length:10,
//                 length2:0,
//                 show: true,
//                 // smooth: true,
//                 // color:'#00ffff',
//                 lineStyle: {
//                     width: 10,
//                     type: 'dotted',
//                     opacity: '0.5'
//                 }
//             }
//         }
//     },
    
//     data: data
// },
{ // 第三个
    name: '',
    type: 'pie',
    tooltip: {
        show: false,
    },
    zlevel: '-6',
    radius: ['41%', '42%'],
    clockWise: false,
    hoverAnimation: false,
    itemStyle: {
        normal: {
            color: '#00AEE5',
            label: {
                show: false,
            },
            
        }
    },
    data: [0]
},
{ // 第四个
    name: '',
    type: 'pie',
    tooltip: {
        show: false,
    },
    zlevel: '-3',
    radius: ['35%', '40%'],
    clockWise: false,
    hoverAnimation: false,
    itemStyle: {
        normal: {
            color: '#F5FCFE',
            label: {
                show: false,
            },
            
        }
    },
    data: [0]
}, { // 第五个
    name: '',
    type: 'pie',
    tooltip: {
        show: false,
    },
    zlevel: '-3',
    radius: ['34.5%', '35%'],
    clockWise: false,
    hoverAnimation: false,
    itemStyle: {
        normal: {
            color: '#00AEE5',
            label: {
                show: false,
            },
            
        }
    },
    data: [0]
}];
option = {
    //  tooltip: {
    //     show: true,
    //     trigger: 'item',
    //     formatter: "{b0} : {c0} ({c1})"
    //     formatter: function(params) {
    //         return 
            
    //     }
    // },
    tooltip: {
            trigger: 'item',
            formatter: function(params) {
                var res = params.name+'<br/>';
                var myseries = option.series;
                for (var i = 0; i < 1; i++) {
                    for(var j=0;j<myseries[i].data.length;j++){
                        if(myseries[i].data[j].name==params.name){
                            res+='总条数: '+ myseries[i].data[j].value  + '</br>' + '总次数: ' +myseries[i].data[j].valueCopy+'</br>';
                        }
                    }
                }
                //  res+=params.name +' : '+params.value1+'</br>';
                return res;
            }
        },
 

    backgroundColor: '#fff',
    // tooltip: {
    //     show: false
    // },
    legend: {
        show: false
    },
    toolbox: {
        show: false
    },
    title: {
        text: '1890',
        left: '50%',
        textAlign: 'center',
        top: '45%',
        textStyle:{
            fontSize:60,
            color: '#00b4ed',
            
        },
        color: '#00b4ed',
    },
    series: seriesObj
}