配置项如下
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
}