配置项如下
datas = {
countArr: [10, 21, 30, 37],
nameArr: ["测试1", "测试2", "测试3", "测试4"]
}
let maxNum = 50;
let bgData = [];let seriesArr = [];
let countArr2 = [];
var lineColor = 'rgba(51, 64, 158, 0.6)';
datas.nameArr.forEach( function(item,index){
bgData.push(maxNum);
countArr2.push(maxNum * 0.8)
})
seriesArr.push({
name: "人口类型统计",
type: 'bar',
barWidth: '15',
itemStyle: {
normal: {
barBorderRadius: 50,
color: new echarts.graphic.LinearGradient(0, 0, 0, 1, [{
offset: 0,
color: '#574EFF' // 0% 处的颜色
}, {
offset: 1,
color: '#000219' // 100% 处的颜色
}], false),
}
},
data: datas.countArr,
zlevel: 11
})
seriesArr.push({
name: "",
type: 'bar',
barWidth: '15',
barGap: '-100%',
itemStyle: {
normal: {
barBorderRadius: 50,
color: '#000',
}
},
data: countArr2,
zlevel: 11
})
seriesArr.push({
name: '',
type: 'bar',
barWidth:100,
barGap: '-60%',
data: bgData,
itemStyle: {
normal: {
color: 'rgba(4, 4, 30, 0.43)',
borderColor:"#33409E"
}
},
zlevel: 9,
xAxisIndex: 1,
})
seriesArr = seriesArr.reverse();
option = {
backgroundColor:'rgba(0,0,0,0.8)',
tooltip: {
trigger: 'axis',
axisPointer: {
type: 'line',
lineStyle: {
opacity: 0
}
},
formatter: function (params) {
var res='<div"><p>'+params[0].name+'</p></div>'
for(var i=0;i<params.length;i++){
if(params[i].seriesName!=""){
res+='<p>'+params[i].seriesName+':'+params[i].data+'</p>'
}
}
return res;
},
},
grid: {
containLabel: true,
left: 30,
top: 80,
right: 30,
bottom: 50
},
xAxis: [{
type: 'category',
data: datas.nameArr,
axisLine: {
show: false
},
axisLabel: {
show: true,
margin:10,
color: '#AAB8FF',
fontSize:13,
interval:0,
fontFamily:'FZLanTingHei-L-GBK',
formatter: function (params) {
var newParamsName = ""; // 最终拼接成的字符串
var paramsNameNumber = params.length; // 实际标签的个数
var provideNumber = 2; // 每行能显示的字的个数
var rowNumber = Math.ceil(paramsNameNumber / provideNumber); // 换行的话,需要显示几行,向上取整
/**
* 判断标签的个数是否大于规定的个数, 如果大于,则进行换行处理 如果不大于,即等于或小于,就返回原标签
*/
// 条件等同于rowNumber>1
if (paramsNameNumber > provideNumber) {
/** 循环每一行,p表示行 */
for (var p = 0; p < rowNumber; p++) {
var tempStr = ""; // 表示每一次截取的字符串
var start = p * provideNumber; // 开始截取的位置
var end = start + provideNumber; // 结束截取的位置
// 此处特殊处理最后一行的索引值
if (p == rowNumber - 1) {
// 最后一次不换行
tempStr = params.substring(start, paramsNameNumber);
} else {
// 每一次拼接字符串并换行
tempStr = params.substring(start, end) + "\n";
}
newParamsName += tempStr; // 最终拼成的字符串
}
} else {
// 将旧标签的值赋给新标签
newParamsName = params;
}
//将最终的字符串返回
return newParamsName;
},
},
boundaryGap:true,
axisTick: {
show: false
},
},{
type: 'category',
data: datas.nameArr,
axisLine: {show:false},
axisLabel: {
show: false,
},
boundaryGap:true,
}],
yAxis: [{
type: 'value',
splitLine: {
show: false
},
axisTick: {
show: false
},
axisLine: {
show: false
},
axisLabel: {
show: false
},
},
],
series:seriesArr
};