这里写自定义目录标题
啊,最近工作一直在做图表,没有UI,自己瞎做,做出来一版给老大看,老大说不行,好,我改。第二版做出来后,老大说,你这个柱状图把他变成每个柱子颜色不一样,再加一个图例,可是我这只有一层数据,一个横坐标一个纵坐标就可以解决了,为什么让我加图例,我去看了看echarts官方,一层数据确实没有办法加图例,咋办啊,拆吧。
原图
讲真,原图没了,给看看差不多的例子吧
就这样吧
然后新的图长这样(不知道算不算泄露公司机密,我马赛克一下吧)
思路就是把一层数据的data数组变成一层数据的多个data数组,一个数组只有一个数据,不过这样要牺牲横坐标,横坐标就设置一个空数据或者其他你想使用的数据即可
代码奉上
var options = {
divideData(){
//数据什么的都是瞎编的,依据自己的情况就可以了
return [{name:'aaa',value:100},{name:'bbb',value:200},{name:'bbb',value:200},{name:'bbb',value:200},{name:'bbb',value:200},{name:'bbb',value:200},{name:'bbb',value:200},{name:'bbb',value:200},{name:'bbb',value:200}].map((ele) =>{
return {
type: 'bar',
name: ele['name'],
//重点 data的设置,一次一个数据
data: [ele['value']],
label:{
show:true,
formatter: '{c}\n{a}',
position:'top'
}
}
})
},
title: {
text: this.title,
x:'center'
},
tooltip:{},
xAxis:{
data:[''],
},
yAxis:{
type:'value',
axisLabel: {
textStyle: {
color: '#999'
}
}
},
dataZoom: [
{
type: 'inside'
}
],
legend: {
top:20,
left:100
},
series: this.divideData()
}