配置项如下
function get_gradual_by_horizontal (c1,c2) {
return new echarts.graphic.LinearGradient(0, 0, 1, 0, [
{
offset: 0,
color: c1
}, {
offset: 1,
color: c2
}
])
}
data = [{
name: '报警',
value: '9',
percent: '3%'
}, {
name: '预警',
value: '4',
percent: '2%'
}, {
name: '故障',
value: '3',
percent: '2%'
}, {
name: '维修',
value: '3',
percent: '2%'
}, {
name: '撤防',
value: '16',
percent: '6%'
}, {
name: '屏蔽',
value: '8',
percent: '3%'
}, {
name: '正常',
value: '107',
percent: '94%'
}]
let colors = [{
c1: 'rgba(202, 185, 28, 0.4)',
c2: 'rgba(254, 240, 44, 1)'
}, {
c1: 'rgba(19, 130, 209, 0.02)',
c2: 'rgba(68, 177, 255, 1)'
}, {
c1: 'rgba(111, 124, 132, 0.4)',
c2: 'rgba(182, 202, 216, 1)'
}, {
c1: 'rgba(185, 45, 0, 0.02)',
c2: 'rgba(255, 156, 76, 1)'
}, {
c1: 'rgba(221, 129, 1, 0.4)',
c2: 'rgba(253, 197, 56, 1)'
}, {
c1: 'rgba(162, 120, 60, 0.2)',
c2: 'rgba(244, 191, 103, 1)'
}, {
c1: 'rgba(69, 79, 128, 0.4)',
c2: 'rgba(97, 145, 224, 1)'
}]
option = {
angleAxis: {
type: 'category',
// data: ['100%', '80~100%', '60~80%', '60%以下', '未学习']
},
radiusAxis: {
min: 0,
max: 10,
interval: 2
},
polar: {},
tooltip: {
confine: true,
trigger: 'item',
formatter: '{a} <br/>{b} : {c} ({d}%)'
},
legend: {
show: true,
x:'left',
y: 'top',
textStyle: {
color: 'rgba(165, 184, 185, 1)'
},
formatter: (item) => {
let cureent = data.find(cur => cur.name === item)
return `${cureent.name} ${cureent.value} ${cureent.percent}`
}
},
toolbox: {
show: true,
feature: {
mark: {
show: true
},
magicType: {
show: true,
type: ['pie', 'funnel']
},
}
},
calculable: true,
series: [
{
type: 'pie',
radius: '55%',
center: ['50%', '50%'],
roseType: 'area',
label: {
show: false
},
itemStyle: {
normal: {
shadowBlur: 60,
color: (params) => {
let {c1, c2} = colors[params.dataIndex]
return get_gradual_by_horizontal(c1, c2);
},
},
},
data: data
}
]
}