本文实例为大家分享了vue+echarts实现条纹柱状横向图的具体代码,供大家参考,具体内容如下
实现效果:
<template>
<div id="BusinessTop5Chart" style="flex: 1; height: 300px; width: 614px; margin-left: 10px"></div>
</template>
<script>
import { getNoteMatters } from '@/api/government';
const colors = [
'rgba(248, 75, 110, 1)',
'rgba(239, 142, 47, 1)',
'rgba(234, 202, 4, 1)',
'rgba(79, 224, 255, 1)',
'rgba(106, 196, 255, 1)',
];
export default {
data() {
return {
list: [],
list1: [],
list2: [],
Top5ListName: [],
Top5ListValue:[]
};
},
mounted() {
this.getNoteMatters();
},
methods: {
initMap() {
var myChart = this.$echarts.init(document.getElementById('BusinessTop5Chart'));
const option = {
grid: {
top: 20,
bottom: 30,
left: 10,
right: 150,
containLabel: true,
},
tooltip: {
show: true,
trigger: 'axis',
axisPointer: {
type: 'shadow',
},
},
xAxis: {
type: 'value',
splitLine: {
show: false,
},
axisLine: {
show: false,
},
axisLabel: {
show: false,
},
axisTick: {
show: false,
},
position: 'top',
},
yAxis: {
type: 'category',
data: this.Top5ListName,
inverse: true, //倒叙
axisLine: {
show: false,
},
axisTick: {
show: false,
},
axisLabel: {
textStyle: {
color: 'rgba(255,255,255,0.85)',
fontSize: 14,
fontFamily: 'TencentSans',
},
padding: [0, 0, 20, 0],
inside: true,
verticalAlign: 'bottom',
},
},
series: [
{
type: 'bar',
barGap: '-90%',
barMaxWidth: 14,
z: 0,
label: {
normal: {
show: false,
position: 'right',
fontSize: 14,
offset: [16, 0],
},
},
data: this.list,
},
{
type: 'bar',
barGap: '-90%',
barMaxWidth: 14,
itemStyle: {
color: 'rgba(26, 49, 99, 0.5)',
},
tooltip: {
show: false,
},
data: this.list1,
},
{
type: 'pictorialBar',
symbolRepeat: 'fixed',
symbolMargin: 4,
symbol: 'rect',
symbolClip: true,
symbolSize: [1, 14],
symbolPosition: 'start',
itemStyle: {
color: 'rgba(0,0,0,1)',
},
data: this.list2,
},
],
};
myChart.setOption(option);
},
getNoteMatters() {
getNoteMatters().then((res) => {
const { status, data } = res;
const { businessTpo5 } = JSON.parse(data);
if (status === 200) {
// this.Top5ListName=[
// {0: "三亚市税务局",
// 1: "三亚市市场监督管理局",
// 2: "三亚市公安局",
// 3: "三亚市邮政管理局",
// 4: "三亚市社会保险服务中心窗口"}]
this.Top5ListName = businessTpo5.map((item) => {
return item.agencies;
});
// this.Top5ListValue=[{0: 189354, 1: 56933, 2: 13267, 3: 10979, 4: 9054}]
this.Top5ListValue = businessTpo5.map((item) => {
return Number(item.num);
});
const max = Math.max.apply(null, this.Top5ListValue);
// this.list=[{itemStyle:
// color: "rgba(248, 75, 110, 1)"
// name: "三亚市税务局"
// num: "189354"
// rate: "57.03%"
// value: 189354}]
this.list = businessTpo5.map((item, index) => {
let obj = {
name: item.agencies,
value: Number(item.num),
num: item.num,
rate: item.rate,
itemStyle: {
color: colors[index],
},
};
return obj;
});
// this.list1=[
// label:{
// normal:{
// color: colors[index],
// fontSize: 14
// position: "right"
// show: true
// offset:[16,0]
// name: "三亚市税务局"
// formatter(){return(item.num+'单位'+''+item.rate)}
// rate: "57.03%"
// value: 189354}}
this.list1 = businessTpo5.map((item, index) => {
let obj = {
name: item.agencies,
value: max,
label: item.num,
rate: item.rate,
label: {
normal: {
show: true,
position: 'right',
fontSize: 14,
color: colors[index],
offset: [16, 0],
formatter() {
return (
item.num + '件' + ' ' + ' ' + ' ' + ' ' + ' ' + ' ' + ' ' + ' ' + ' ' + ' ' + ' ' + item.rate
);
},
},
},
};
return obj;
});
// this.list2=[{label: "189354"
// name: "三亚市税务局"
// rate: "57.03%"
// value: 189354}]
this.list2 = businessTpo5.map((item) => {
let obj = {
name: item.agencies,
value: Number(item.num),
label: item.num,
rate: item.rate,
};
return obj;
});
}
this.initMap();
});
},
},
};
</script>
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持编程网。