配置项如下
myChart.hideLoading();
data = {
xData: [1, 2, 3, 4, 5, 6, 7, 8, 9, 'fdaddsfsfsdfda10', 'fdafda11', 'fdafdfsdfsda12'],
onlineData: [450, 351, 165, 18, 151, 25, 45, 12, 48, 89, 790, 123, 42, 24],
outlineData: [50, 51, 35, 17, 119, 21, 450, 12, 48, 89, 80, 17, 402, 204],
licenseData: [520, 452, 235, 62, 270, 46, 495, 24, 96, 178, 870, 140, 444, 228],
unuseData: [20, 50, 200, 35, 27, 46, 495, 24, 96, 178, 870, 140, 444, 228],
};
let percentData = new Map();
// percentData = percentData.set(mockData.result[1].data,diamondData[1])
for (var i = 0; i < data.onlineData.length; i = i + 1) {
let percentValue = (((data.onlineData[i] + data.outlineData[i]) / data.licenseData[i]) * 100).toFixed(0);
percentData.set(data.licenseData[i], percentValue);
}
// console.log(percentData);
// 指定图表的配置项和数据
option = {
title: {
text: '设备license利用率',
subtext: '百分比为已放号占比',
left: 'left',
},
color:["#05F612","#A61961","A49696"],
tooltip: {
trigger: 'axis',
axisPointer: {
// 坐标轴指示器,坐标轴触发有效
type: 'shadow', // 默认为直线,可选为:'line' | 'shadow'
},
},
legend: {
top: '3%',
data: ['在线', '离线', '未使用'],
left: 'right',
},
xAxis: {
type: 'value',
},
yAxis: {
type: 'category',
inverse: true,
data: data.xData,
},
dataZoom: [
{
yAxisIndex: 0,
show: false,
type: 'slider', // 这个 dataZoom 组件是 slider 型 dataZoom 组件
startValue: 0, // 从头开始。
endValue: 7, // 一次性展示8个。
},
],
series: [
{
name: '在线',
type: 'bar',
stack: 'total',
barGap: '20%',
label: {
normal: {
show: true,
position: 'inside',
},
},
data: data.onlineData,
},
{
name: '离线',
type: 'bar',
stack: 'total',
barGap: '20%',
label: {
normal: {
show: true,
position: 'inside',
},
},
data: data.outlineData,
},
{
name: '未使用',
type: 'bar',
stack: 'total',
barGap: '20%',
label: {
normal: {
show: true,
position: 'inside',
},
},
data: data.unuseData,
},
{
name: 'license',
type: 'bar',
// stack: 'total',
barGap: '-100%',
itemStyle: {
color: '#000',
opacity: 0,
},
label: {
show: true,
// color: '#F37879',
position: 'right',
opacity: 1,
formatter: function (v) {
let val = v.data;
return percentData.get(val) + '%';
},
},
data: data.licenseData,
},
],
};
myChart.setOption(option);
// 定时器
setInterval(function () {
// 每次向后滚动一个,最后一个从头开始。
if (option.dataZoom[0].endValue == data.xData.length - 1) {
option.dataZoom[0].endValue = 7;
option.dataZoom[0].startValue = 0;
} else {
option.dataZoom[0].endValue = option.dataZoom[0].endValue + 1;
option.dataZoom[0].startValue = option.dataZoom[0].startValue + 1;
}
myChart.setOption(option);
}, 3000);