配置项如下
let color = ['#83a1c5', '#45d7ff'];
let data = {
bracelet: [{name: '正在使用', value: 18}, {name: '未使用', value: 82}],
mattress: [{name: '正在使用', value: 45}, {name: '未使用', value: 55}]
}
option = {
backgroundColor: '#031930',
title: [
// 图片
{
text: '{img|手环}',
textStyle: {
rich: {
img: {
color: 'red',
backgroundColor: {
image: ''
},
align: 'center'
}
}
},
top: '15%',
left: '21%'
},
{
text: '智能工作手表\n使用率',
textStyle: {
color: '#82a1c4',
},
textAlign: 'center',
top: '15%',
left: '30%'
},
// 图片
{
text: '{img|床垫}',
textStyle: {
rich: {
img: {
color: 'red',
backgroundColor: {
image: ''
},
align: 'center'
}
}
},
top: '15%',
left: '61%'
},
{
text: '智能检测床垫\n使用率',
textStyle: {
color: '#82a1c4',
},
textAlign: 'center',
top: '15%',
left: '70%'
},
],
legend: {
data: ['正在使用', '未使用'],
orient: 'horizontal',
bottom: '20%',
itemWidth: 14,
itemHeight: 14,
textStyle: {
color: '#82a1c4'
},
selectedMode: false
},
series: [{
type: 'pie',
data: data.bracelet,
silent: true,
center: ['30%', '50%'],
radius: '40%',
label: {
show: true,
position: 'inside',
formatter: function(value) {
return value.value + '%';
},
color: '#111',
},
labelLine: {
show: false
}
}, {
type: 'pie',
data: data.mattress,
silent: true,
center: ['70%', '50%'],
radius: '40%',
label: {
show: true,
position: 'inside',
formatter: function(value) {
return value.value + '%';
},
color: '#111'
},
labelLine: {
show: false
}
}, {
type: 'pie',
silent: true,
center: ['30%', '50%'],
radius: '44%',
label: {
show: false
},
data: [100],
labelline: {
show: false
},
itemStyle: {
color: '#022d52'
},
z: -1
}, {
type: 'pie',silent: true,
center: ['70%', '50%'],
radius: '44%',
label: {
show: false,
},
data: [100],
labelLine: {
show: false,
},
itemStyle: {
color: '#022d52'
},
z: -1
}],
color: color
};
// 模拟数据
function vdata() {
let b = 100;
let m = 100;
for(let i = 0; i < data.bracelet.length; i++) {
if(i === data.bracelet.length - 1) {
data.bracelet[i].value = b;
data.mattress[i].value = m;
}else {
data.bracelet[i].value = Math.floor(Math.random() * b + 1);
data.mattress[i].value = Math.floor(Math.random() * m + 1);
b = b - data.bracelet[i].value;
m = m - data.mattress[i].value;
}
}
option.series[0].data = data.bracelet;
option.series[1].data = data.mattress;
myChart.setOption(option, true);
}
setInterval(function() {
vdata();
}, 1000);