配置项如下
var category= [
{
name: "林地侵占",
value: 3
},
{
name: "草地侵占",
value: 6
},
{
name: "水体侵占",
value: 7
},
{
name: "建筑物侵占",
value: 10
},
{
name: "其他",
value: 12
}
] // 类别
var total = 0; // 数据总数
category.forEach(item=>{
total += item.value;
})
total = 15; // 数据总数
var totalList = [];
// var totalList = this.echartData.length;
var datas = [];
category.forEach(value => {
datas.push(value.value);
totalList.push(total);
});
option = {
xAxis: {
max: total,
splitLine: {
show: false
},
axisLabel: {
show: false,
// fontSize: 10,
// color: '#cacdd5',
},
axisLine: {
show: false
},
axisTick: {
show: false
},
},
grid: {
left: 95,
top: 5, // 设置条形图的边距
right: 65,
bottom: 5,
containLabel: true
},
yAxis: [{
type: "category",
inverse: true,
data: category,
axisLine: {
show: false
},
axisTick: {
show: false
},
axisLabel: {
show: false
},
}],
series: [
{
// 内
type: "bar",
barWidth: 16,
silent: true,
itemStyle: {
normal: {
color: "#009cd6"
}
},
label: {
normal: {
formatter: "{b}",
textStyle: {
color: "#6f7178",
fontSize: 14
},
position: 'left',
distance: 10, // 向右偏移位置
show: true
}
},
data: category,
z: 1,
animationEasing: "elasticOut"
},
{
// 分隔
type: "pictorialBar",
itemStyle: {
normal: {
color: "#fff"
}
},
symbolRepeat: "fixed",
symbolMargin: 2,
symbol: "rect",
symbolClip: true,
symbolSize: [3, 16],
symbolPosition: "start",
symbolOffset: [1, -1],
symbolBoundingData: this.total,
data: totalList,
z: 2,
animationEasing: "elasticOut",
},
{
// label
type: "pictorialBar",
symbolBoundingData: total,
itemStyle: {
normal: {
color: "none"
}
},
label: {
normal: {
formatter: (params) => {
var text;
text = '{f| ' + params.data + '}';
return text;
},
rich: {
f: {
color: "#009cd6",
fontSize: 16
}
},
position: 'right',
distance: 5, // 向右偏移位置
show: true
}
},
data: datas,
z: 0,
},
{
name: "外框",
type: "bar",
barGap: "-111%", // 设置外框粗细
data: totalList,
barWidth: 20,
itemStyle: {
normal: {
// barBorderRadius: [5, 5, 5, 5],
color: "transparent", // 填充色
barBorderColor: "#009cd6", // 边框色
barBorderWidth: 1, // 边框宽度
}
},
z: 3
},
]
};