配置项如下
var dataValArray = 0.63;
var value =25;
var max = 50;
color = [["#49afff"], ["#68A54A"], ["#f56c6c"]]
var uploadedDataURL = "/asset/get/s/data-1559120606810-8K55q2kWT.png";
option = {
tooltip: {
formatter: '{a} <br/>{b} : {c}%'
},
angleAxis: {
axisLine: {
show: false
},
axisLabel: {
show: false
},
splitLine: {
show: false
},
axisTick: {
show: false
},
min: 0,
max: 6.666,
// boundaryGap: ['0', '10'],
startAngle: 225
},
radiusAxis: {
type: 'category',
axisLine: {
show: false
},
axisTick: {
show: false
},
axisLabel: {
show: false
},
data: ['a', 'b', 'c'],
z: 10
},
polar: {
radius: '85%'
},
series: [{
type: 'bar',
data: [, , value/10],
z: 1,
coordinateSystem: 'polar',
barMaxWidth: 10,
name: '当前温度',
roundCap: true,
color: //数组第一个属性是颜色所占line百分比
[],
barGap: '-100%',
//如果想要两个系列的柱子重叠,可以设置 barGap 为 '-100%'。这在用柱子做背景的时候有用。
},
{//底圈
type: 'bar',
data: [, , 5],
z: 0,
silent: true,
coordinateSystem: 'polar',
barMaxWidth: 45,
name: '',
roundCap: true,
color: 'rgb(255,255,255,0.5)',
barGap: '-100%',
},
{
name: '温度',
type: 'gauge',
max: 50,
startAngle: 225,
endAngle: -45,
detail: {
formatter: ['{value}℃', '{a|当前温度}'].join('\n'),
fontSize: 120,
width: '100%',
height: '30%',
padding: [-300, 0, 0, 0],
rich: {
a: {
color: '#666',
fontSize: 30,
padding: [10, 0, 10, 0],
}
}
},
data: [{
value: value
}],
axisLine: {
lineStyle: {
color: [ //数组第一个属性是颜色所占line百分比
[0.4, "#49afff"],
[0.6, "#68A54A"],
[1, "#f56c6c"],
],
width: 22
}
},
splitLine: {
length: 15,
lineStyle: {
width: 1
}
},
splitNumber: 50,
axisLabel: {
distance: -20,
show: true,
formatter: function(value) {
if (value === 0 || value === 50) {
return value + '℃'
}
return ''
},
// padding: '8 0 0 0'
lineHeight: -60,
fontSize: 40
},
pointer: {
show: false
},
axisTick: {
show: false
},
},
]
};
function init_polarColor(value) {
//此函数根据value的范围大小,为仪表盘参数设置不同的颜色、数字
if (0 < value && value < 20) {
option.series[0].color[0]="#49afff"
} else if (20 <= value && value < 30) {
option.series[0].color = color[1]
} else if (30 <= value && value <= 50) {
option.series[0].color = color[2]
} else {}
series[0].color = color[0]
}
setInterval(function() {
// let num = (Math.random() * 40).toFixed(2) - 0;
let num = value
// option.series[0].data[0].value = num;
// option.series[1].data[0].value = num;
// option.series[1].data[2].value = 67 - num;
myChart.setOption(option, true);
init_polarColor(value)
}, 2000);