配置项如下
var count = 360;
var data = [];
for (let i = 0; i < count; i++) {
data.push({
value: [1, i]
});
}
let udata = [25, 25, 5];
let colors = ['#fff', 'blue', 'red'];
function getPieces(udata, colors) {
let sum = udata.reduce((s, n) => s + n);
let ddata = udata.map(d => parseInt(count * d / sum));
let pp = [];
for (let i = 0; i < ddata.length; i++) {
const arr = ddata.slice(0, i);
const index = arr.length > 0 ? arr.reduce((s, n) => s + n) : 0;
for (let j = 0; j < ddata[i]; j++) {
pp.push({
gt: index + j,
lte: index + j + 1,
color: colors[i],
colorAlpha: 1 * j / ddata[i] + ''
});
}
}
return pp;
}
option = {
legend: {
data: ['a']
},
visualMap: [{
show: false,
dimension: 1,
pieces: getPieces(udata, colors),
}],
series: [{
type: 'pie',
radius: ['55%', '75%'],
center: ['50%', '50%'],
silent: true,
labelLine: {
normal: {
show: false
}
},
data: data
}]
}