pie
配置项如下
var uploadedDataURLblue = "/asset/get/s/data-1596261792887-rfxw9oPbZ.png";
var uploadedDataURLgreen = "/asset/get/s/data-1596261779112-YOj9zlVq0.png";
let data = [{
name: '人工智能',
value: 109,
icon:uploadedDataURLgreen
}, {
name: '智慧能源',
value: 165,
icon:uploadedDataURLblue
}, {
name: '智能制造',
value: 208,
icon:uploadedDataURLblue
}, {
name: '智慧医疗',
value: 113,
icon:uploadedDataURLgreen
}, {
name: '智慧教育',
value: 185,
icon:uploadedDataURLblue
}, {
name: '智慧城市',
value: 198,
icon:uploadedDataURLblue
}];
let titleArr = [],
legendArr = [],
seriesArr = [],
total = 0,
colors = [
['#0b2a50', '#3da9b8', '#58d3bd', '#62e3bf'],
['#0b2a50', '#1265ce','#1987d2','#1c94d4'],
['#0b2a50', '#1265ce','#1987d2','#1c94d4'],
['#0b2a50', '#3da9b8', '#58d3bd', '#62e3bf'],
['#0b2a50', '#1265ce','#1987d2','#1c94d4'],
['#0b2a50', '#1265ce','#1987d2','#1c94d4']
]
for (let i = 0; i < data.length; i++) {
total += data[i].value
}
for (let i = 0; i < data.length; i++) {
if (i < 3) {
titleArr.push({
text: data[i].name,
left: (i ) * 30 + 19 + '%',
top: '39%',
textAlign: 'center',
textStyle: {
fontWeight: 'normal',
fontSize: 12,
color: '#a7d4e2',
textAlign: 'center',
},
});
legendArr.push({
left: (i ) * 30 + 30 + '%',
top: '3%',
itemWidth: 8,
itemHeight: 12,
data: [{
name: data[i].name,
icon: 'image://' +data[i].icon
}],
textStyle: {
fontSize: 12, //字体大小
color: 'transparent', //字体颜色
},
})
seriesArr.push({
name: data[i].name,
type: 'pie',
clockWise: true,
center: [(i ) * 30 + 20 + '%', '20%'],
radius: ['25%' , '35%'],
itemStyle: {
normal: {
label: {
show: false
},
labelLine: {
show: false
},
}
},
hoverAnimation: false,
data: [{
value: data[i].value,
itemStyle: {
normal: {
color: new echarts.graphic.LinearGradient(0, 0, 0, 1, [{
offset: 0,
color: colors[i][1]
}, {
offset: 0.5,
color: colors[i][2]
},
{
offset:1,
color: colors[i][3]
}
]),
shadowColor: colors[i][1],
shadowBlur: 0,
}
},
label: {
normal: {
formatter: function(params) {
return params.value;
},
position: 'center',
show: true,
textStyle: {
fontSize: '12',
fontWeight: 'bold',
fontFamily:'Verdana',
color: '#eefafb'
}
}
},
}, {
value: total - data[i].value,
name: 'invisible',
itemStyle: {
normal: {
color: colors[i][0]
},
emphasis: {
color: colors[i][0]
}
}
}]
})
} else {
titleArr.push({
text: data[i].name,
left: (i - 3) * 30 + 19 + '%',
top: '91%',
textAlign: 'center',
textStyle: {
fontWeight: 'normal',
fontSize: 12,
color: '#a7d4e2',
textAlign: 'center',
},
});
legendArr.push({
left: (i - 3) * 30 + 30 + '%',
top: '50%',
itemWidth: 8,
itemHeight: 12,
data: [{
name: data[i].name,
icon: 'image://' +data[i].icon
}],
textStyle: {
fontSize: 12, //字体大小
color: 'transparent', //字体颜色
},
})
seriesArr.push({
name: data[i].name,
type: 'pie',
clockWise: true,
center: [(i - 3) * 30 + 20 + '%', '72%'],
radius: ['25%', '35%'],
itemStyle: {
normal: {
label: {
show: false
},
labelLine: {
show: false
},
}
},
hoverAnimation: false,
data: [{
value: data[i].value,
itemStyle: {
normal: {
color: colors[i][1],
shadowColor: colors[i][1],
shadowBlur: 0,
}
},
label: {
normal: {
formatter: function(params) {
return params.value;
},
position: 'center',
show: true,
textStyle: {
fontSize: '12',
fontWeight: 'bold',
color: '#eefafb'
}
}
},
}, {
value: total - data[i].value,
name: 'invisible',
itemStyle: {
normal: {
color: colors[i][0]
},
emphasis: {
color: colors[i][0]
}
}
}]
})
}
}
option = {
backgroundColor: '#000f1e',
title: titleArr,
legend: legendArr,
series: seriesArr
}