横向排名柱状图
配置项如下
var colorList = ['rgba(211, 68, 53, 1)', 'rgba(228, 133, 48, 1)', 'rgba(231, 185, 44, 1)', 'rgba(23, 165, 213, 1)'];
var datas = [
{
value: 99,
name: '系列一',
},
{
value: 97,
name: '系列二',
},
{
value: 94,
name: '系列三',
},
{
value: 90,
name: '系列四',
},
{
value: 88,
name: '系列五',
},
{
value: 84,
name: '系列6',
},
{
value: 81,
name: '系列7',
},
{
value: 79,
name: '系列8',
},
{
value: 75,
name: '系列9',
},
{
value: 65.88,
name: '系列a',
},
];
let maxArr = new Array(datas.length).fill(100);
option = {
backgroundColor: 'rgb(20,28,52)',
tooltip: {
show: false,
trigger: 'axis',
axisPointer: {
type: 'shadow',
},
},
legend: {
show: false,
},
grid: {
left: 0,
right: 30,
containLabel: true,
},
xAxis: {
show: true,
type: 'value',
axisLine: {
show: true,
lineStyle: {
color: ['rgba(62, 113, 157, 0.5)']
}
},
splitLine: {
lineStyle: {
color: 'rgba(62, 113, 157, 0.5)'
}
},
axisLabel: {
color: 'rgba(62, 113, 157, 1)'
}
},
yAxis: [
{
type: 'category',
inverse: true,
axisLine: {
show: false,
},
axisTick: {
show: false,
},
axisPointer: {
label: {
show: true,
margin: 30,
},
},
data: datas.map((item) => item.name),
axisLabel: {
margin: 100,
fontSize: 14,
align: 'left',
color: '#fff',
rich: {
a1: {
color: '#fff',
backgroundColor: colorList[0],
width: 20,
height: 20,
align: 'center',
borderRadius: 10,
},
a2: {
color: '#fff',
backgroundColor: colorList[1],
width: 20,
height: 20,
align: 'center',
borderRadius: 10,
},
a3: {
color: '#fff',
backgroundColor: colorList[2],
width: 20,
height: 20,
align: 'center',
borderRadius: 10,
},
b: {
color: '#fff',
backgroundColor: colorList[3],
width: 20,
height: 20,
align: 'center',
borderRadius: 10,
},
},
formatter: function (params) {
var index = datas.map((item) => item.name).indexOf(params);
index = index + 1;
if (index - 1 < 3) {
return ['{a' + index + '|' + index + '}' + ' ' + params].join('\n');
} else {
return ['{b|' + index + '}' + ' ' + params].join('\n');
}
},
},
}
],
series: [
{
z: 2,
name: 'value',
type: 'bar',
barWidth: 8,
zlevel: 1,
data: datas.map((item, i) => {
itemStyle = {}
itemStyle.color = new echarts.graphic.LinearGradient(0, 0, 1, 0, [
{
offset: 0,
color: 'rgba(24, 103, 222, 0.4)',
},
{
offset: 1,
color: i < 3 ? colorList[i] : colorList[3],
},
])
return {
value: item.value,
itemStyle: itemStyle,
};
}),
label: {
show: true,
position: 'right',
color: '#fff',
fontSize: 14,
},
itemStyle: {
barBorderRadius: [0, 15, 15, 0],
}
},
{
name: '背景',
type: 'bar',
barWidth: 24,
barGap: '-200%',
itemStyle: {
normal: {
color: 'rgba(0, 64, 128, 0.19)',
},
},
data: maxArr,
},
],
};