pie
配置项如下
var uploadedDataURLblue = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAgAAAAMCAYAAABfnvydAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyZpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTM4IDc5LjE1OTgyNCwgMjAxNi8wOS8xNC0wMTowOTowMSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIDIwMTcgKFdpbmRvd3MpIiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOjE2RTc0RDJERDNBQjExRUFBRjA5RkExRUYzQjc0QjU1IiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOjE2RTc0RDJFRDNBQjExRUFBRjA5RkExRUYzQjc0QjU1Ij4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6MTZFNzREMkJEM0FCMTFFQUFGMDlGQTFFRjNCNzRCNTUiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6MTZFNzREMkNEM0FCMTFFQUFGMDlGQTFFRjNCNzRCNTUiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz7uAuj3AAAAnUlEQVR42mL8//8/AwiIl19UAFLJDBAw92Wn/gMQg4UBAbSBuAbKPgHEYAVMSAp+YGMjK/iPjY2sgBEbmwnoOE0o+z6SgvtQh2sxipVduAJkn4HiiVAF+UBsAsSmIAXGUElku2FWmDAB/XsWyAhFkoBJhoDkwI4EMtYgGQ8CE4Bia8E6YCEJddRLIPUPKCkJE0MOSRDwRAsPBoAAAwCytzBsqWObCQAAAABJRU5ErkJggg==";
var uploadedDataURLgreen = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAgAAAAMCAYAAABfnvydAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyZpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTM4IDc5LjE1OTgyNCwgMjAxNi8wOS8xNC0wMTowOTowMSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIDIwMTcgKFdpbmRvd3MpIiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOjFBNEFFMkFERDNBQjExRUFBMjBERjBGNjQwMUIwOTMwIiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOjFBNEFFMkFFRDNBQjExRUFBMjBERjBGNjQwMUIwOTMwIj4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6MUE0QUUyQUJEM0FCMTFFQUEyMERGMEY2NDAxQjA5MzAiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6MUE0QUUyQUNEM0FCMTFFQUEyMERGMEY2NDAxQjA5MzAiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz475tTKAAAAnUlEQVR42mL8//8/AwzYHAwwAlL/j9hvOA8TY2FABduB+B8QS8IEmJB0TwBSYkAsAWT3w8QZQVYABUKA7NVopoUArVrLaH3A3xjIOQMVhDmIEUqbgKxYCMW5UAX/oWyQ2CKQglCgUQlAehvUTSC8DSoWygRkXIcap4hkP5gNlLvGhCT4HxsbWQEjNjayAg5sbOSQvArELUhsMAAIMACTaC52fFy0LgAAAABJRU5ErkJggg==";
let data = [{
name: '氧气',
value: 0.001,
icon: uploadedDataURLgreen
}, {
name: '一氧化碳',
value: 0.001,
icon: uploadedDataURLblue
}, {
name: '硫化氢',
value: 0.001,
icon: uploadedDataURLgreen
}, {
name: '甲烷',
value: 0.002,
icon: uploadedDataURLblue
}];
let titleArr = [],
legendArr = [],
seriesArr = [],
total = 0,
colors = [
['#0b2a50', '#3da9b8', '#58d3bd', '#62e3bf'],
['#0b2a50', '#1265ce', '#1987d2', '#1c94d4'],
['#0b2a50', '#3da9b8', '#58d3bd', '#62e3bf'],
['#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 < 2) {
titleArr.push({
text: data[i].name,
left: (i) * 40 + 28 + '%',
top: '39%',
textAlign: 'center',
textStyle: {
fontWeight: 'normal',
fontSize: 12,
color: '#a7d4e2',
textAlign: 'center',
},
});
legendArr.push({
left: (i) * 40 + 43 + '%',
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) * 40 + 30 + '%', '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: 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 - 2) * 40 + 28 + '%',
top: '91%',
textAlign: 'center',
textStyle: {
fontWeight: 'normal',
fontSize: 12,
color: '#a7d4e2',
textAlign: 'center',
},
});
legendArr.push({
left: (i - 2) * 40 + 40 + '%',
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 - 2) * 40 + 30 + '%', '72%'],
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',
color: '#eefafb'
}
}
},
}, {
value: 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
}