多个饼图叠加、改变series[1]的radius值可以得到另一种饼图
配置项如下
//数据
var data ={
"total": 2268,
"data": [
{"name": "黄色预警", "value": 234},
{"name": "橙色预警", "value": 678},
{"name": "红色预警", "value": 456},
{"name": "蓝色预警", "value": 900}
]
}
var labelData = [];
var scale=64/data.total;
var totalNum = data.total*scale;
var step1=data.data[0].value*scale;
var step2=step1+data.data[1].value*scale;
var step3=step2+data.data[2].value*scale;
for (var i = 0; i <= totalNum; i++){
switch (true) {
case i < step1:
labelData.push({
'value': 1,
'name': data.data[0],
'itemStyle': {
'normal': {
'color': "#FF0000"
}
}
});
break;
case step1 < i &&i<step2:
labelData[i] = {
'value': 1,
'name': data.data[1],
'itemStyle': {
'normal': {
'color': "#FF7900"
}
}
};
break;
case step2 < i &&i< step3:
labelData[i] = {
'value': 1,
'name': data.data[2],
'itemStyle': {
'normal': {
'color': "#F1C000"
}
}
};
break;
case step3 < i &&i< totalNum:
labelData[i] = {
'value': 1,
'name': data.data[3],
'itemStyle': {
'normal': {
'color': "#0068FF"
}
}
};
break;
}
}
option = {
backgroundColor: 'rgb(41, 60, 85)',
'title': {
'text': '',
'subtext': '',
'left': 'center',
'top': '35%',
'textBaseline': 'top',
'textStyle': {
'fontSize': 12,
'color': '#fff',
'fontFamily': 'Digiface'
},
'subtextStyle': {
'fontSize': 16,
'color': '#f3be2c'
}
},
'tooltip': {
'show': false,
'position': [0, 0],
'trigger': 'item',
'formatter': '{b}: {c} ({d}%)'
},
'grid': {
'left': 0,
'top': 0,
'bottom':0,
'right': 0
},
'series':[
{
type: 'pie',
radius: [0, 60],
hoverAnimation: false,
// minAngle:30,
itemStyle:{
color:'transparent'
},
label:{
fontSize:24,
color:'#00ffff',
position:'center',
formatter:function(params){
return params.value
}
},
data:[
{value: data.total}
]
},
{
'type': 'pie',
hoverAnimation:false,
"color": ['#FF0000', '#FF7900', '#F1C000', '#0068FF'],
// 'radius': [55, 80],
'radius': [60, 90],
'startAngle': 30,
'label': {
'normal': {
formatter: function (params) {
return '' + params.name+'('+ params.value+')'+ '\n' + params.percent + '%';
},
'show': true,
'textStyle': {
'fontSize': '14',
'color': '#fff'
}
},
},
'labelLine': {
'show': true,
'normal': {
'lineStyle': {
'width': 2
},
'smooth': 0.2,
'length': 20,
'length2': 45
}
},
'data':data.data ,
z:1
},
{
'hoverAnimation': true,
// 'avoidLabelOverlap': true,
'type': 'pie',
'data': labelData,
'startAngle': 30,
'itemStyle': {
'normal': {
'borderWidth': 2,
'borderColor': 'rgb(41, 60, 85)'
},
"emphasis":{
show:false
}
},
'radius': [60, 90],
'label': {
'normal': {
'show': false,
},
"emphasis":{
show:false
}
},
z:2
}
]
};
//修改第一个series【1】的radius值 环的大小会产生不同效果的环 如修改成:'radius': [50, 80]