echarts实现柱形图的每个柱子不同颜色并带图例

这里写自定义目录标题

啊,最近工作一直在做图表,没有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()
      } 
评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值