var data = [];
var r = 150; //最低角度
var rAmplitude = 50;
var pieData = [20, 30, 25, 25, 20, 35, 30, 40, 35, 44]; //饼图数据
var pieDataSum = 304; //饼图数据和
var _angle = (360 / 304); //每一个饼图数据对应角度
var sumange = 0;
for (var i = 0; i < pieData.length; i++) {
for (var j = 0; j < pieData[i]; j++) {
var _mid = Math.ceil(pieData[i] / 2);
var _midArr = [0, _mid, pieData[i]];
}
for (var m = 0; m < 3; m++) {
var r2 = r + (pieData[i] + rAmplitude) * Math.sin(Math.PI * (0 + _midArr[m] / pieData[i])); //数据高度
var a1 = (Number(_angle * _midArr[m]) + Number(sumange)); //数据角度
data.push([r2, a1]);
}
sumange = _angle * pieData[i] + sumange;
}
option = {
title: {
text: ''
},
polar: {},
tooltip: {
trigger: 'item'
},
angleAxis: {
type: 'value',
show: false
},
radiusAxis: {
show: false,
max: 275
},
series: [{
coordinateSystem: 'polar',
name: 'line',
type: 'line',
data: data,
symbolSize: 0,
symbol: 'circle',
areaStyle: {
normal: {
color: "yellow"
}
},
lineStyle: {
normal: {
color: '#C25353',
width: 1
}
}
},
{
name: 'A',
type: 'pie',
radius: '44%',
center: ["50%", "50%"],
itemStyle: {
normal: {
borderColor: 'rgba(0,0,0,0)',
borderWidth: 0
},
emphasis: {
borderColor: 'rgba(0,0,0,0)',
borderWidth: 0
}
},
label: {
normal: {
show: true,
position: "outside",
color: 'transparent',
formatter(d) {
return ''
}
},
emphasis: {
show: true,
position: 'outside',
fontSize: 20,
color: "blue",
formatter(d) {
return d.name + d.value
}
}
},
labelLine: {
normal: {
show: false,
smooth: true,
length2: 0
},
emphasis: {
show: false,
smooth: true,
length2: 0
}
},
data: [{
value: 20,
name: 'A1',
labelLine: {
normal: {
length: 42,
lineStyle: {
width: 4
}
}
}
},
{
value: 30,
name: 'A2',
labelLine: {
normal: {
length: 12,
lineStyle: {
width: 2
}
}
}
},
{
value: 25,
name: 'A3',
labelLine: {
normal: {
length: 22,
lineStyle: {
width: 2
}
}
}
},
{
value: 25,
name: 'A4',
labelLine: {
normal: {
length: 8,
lineStyle: {
width: 2
}
}
}
},
{
value: 20,
name: 'A5',
labelLine: {
normal: {
length: 16,
lineStyle: {
width: 2
}
}
}
},
{
value: 35,
name: 'A6',
labelLine: {
normal: {
length: 12,
lineStyle: {
width: 2
}
}
}
},
{
value: 30,
name: 'A7',
labelLine: {
normal: {
length: 5,
lineStyle: {
width: 2
}
}
}
},
{
value: 40,
name: 'A8',
labelLine: {
normal: {
length: 71,
lineStyle: {
width: 7
}
}
}
},
{
value: 35,
name: 'A9',
labelLine: {
normal: {
length: 25,
lineStyle: {
width: 2
}
}
}
},
{
value: 44,
name: 'A10',
labelLine: {
normal: {
length: 41,
lineStyle: {
width: 4
}
}
}
}
]
}
],
animation: false
};