echartes 柱状图 每跟柱子之间互不关联

本文介绍了一种使用ECharts绘制复杂柱状图的方法,通过堆叠不同类别的数据并在每个类别下进一步细分来实现对比展示。该图表适用于展示多个分类间的数据比较及每个分类内部的细分情况。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

我司近期有个图表功能,需求是柱形图没个分类比较,BUT 每个分类里面还有小类型,不同分类之间的小类型之间互不相关。

苦思良久,干

drawCharts(data){

               let _this = this;
               let tjs = [];
               let jsyd = [];
               let nyd = [];
               let wlyd = [];
               let legend = [];

               data[4].map((item)=>{
                    let series = {
                         name: item.elx,
                         type:'bar',
                         stack:'总量',
                         data:[item.area],
                         yAxisIndex:0,
                         barWidth:20,
                         itemStyle:{
                              color: _this.colorChoose(item.elx)
                         }
                    }
                    tjs.push(series);
                    legend.push(item.elx);
               })

               data[3].map((item)=>{
                    let series = {
                         name: item.elx,
                         type:'bar',
                         stack:'总量2',
                         data:[0,item.area],
                         yAxisIndex:1,
                         barWidth:20,
                         itemStyle:{
                              color: _this.colorChoose(item.elx)
                         }
                    }
                    jsyd.push(series);
                    legend.push(item.elx);
               })

               data[2].map((item)=>{
                    let series = {
                         name: item.elx,
                         type:'bar',
                         stack:'总量4',
                         data:[0,0,0,item.area],
                         yAxisIndex:3,
                         barWidth:20,
                         itemStyle:{
                              color: _this.colorChoose(item.elx)
                         }
                    }
                    wlyd.push(series);
                    legend.push(item.elx);
               })

               data[1].map((item)=>{
                    let series = {
                         name: item.elx,
                         type:'bar',
                         stack:'总量3',
                         data:[0,0,item.area],
                         yAxisIndex:2,
                         barWidth:20,
                         itemStyle:{
                              color: _this.colorChoose(item.elx)
                         }
                    }
                    nyd.push(series);
                    legend.push(item.elx);
               })

               let chart = this.$echarts.init(document.getElementById('txChart'));

               let option = {
                    tooltip: {
                         show : true,
                         // trigger: 'axis'
                         formatter: function(params, ticket, callback) {
                              return(
                                   params.name +
                                   "<br/>" +
                                   params.seriesName+":" +
                                   params.value+'公顷'
                              )
                         }
                    },
                    grid: {
                         top: '40px',
                         left: '65px',
                         right: '30px',
                         bottom: '30px',
                    },
                    legend: {
                         data: legend,
                         type: 'scroll'
                    },
                    xAxis: {
                         type: 'value',
                         axisTick:{
                              show:false
                         }
                    },
                    yAxis: [
                              {
                                   show:true,
                                   position:'left',
                                   data:[
                                             '特交水' + '\n(' + data.cjEntity.txTjsmj + ')',
                                             '建设用地' + '\n(' + data.cjEntity.txJsydmj + ')',
                                             '农用地' + '\n(' + data.cjEntity.txNydmj + ')',
                                             '未利用地' + '\n(' + data.cjEntity.txWlydmj + ')',
                                        ],
                                   axisTick:{
                                        show:false
                                   }
                              },
                              {
                                   show:false,
                                   position:'left',
                                   data:[
                                             '特交水' + '\n(' + data.cjEntity.txTjsmj + ')',
                                             '建设用地' + '\n(' + data.cjEntity.txJsydmj + ')',
                                             '农用地' + '\n(' + data.cjEntity.txNydmj + ')',
                                             '未利用地' + '\n(' + data.cjEntity.txWlydmj + ')',
                                        ],
                              },
                              {
                                   show:false,
                                   position:'left',
                                   data:[
                                             '特交水' + '\n(' + data.cjEntity.txTjsmj + ')',
                                             '建设用地' + '\n(' + data.cjEntity.txJsydmj + ')',
                                             '农用地' + '\n(' + data.cjEntity.txNydmj + ')',
                                             '未利用地' + '\n(' + data.cjEntity.txWlydmj + ')',
                                        ],
                              },
                              {
                                   show:false,
                                   position:'left',
                                   data:[
                                             '特交水' + '\n(' + data.cjEntity.txTjsmj + ')',
                                             '建设用地' + '\n(' + data.cjEntity.txJsydmj + ')',
                                             '农用地' + '\n(' + data.cjEntity.txNydmj + ')',
                                             '未利用地' + '\n(' + data.cjEntity.txWlydmj + ')',
                                        ],
                              }
                         ],
                    series: [
                         ...tjs,
                         ...jsyd,
                         ...nyd, 
                         ...wlyd
                    ]
               };

               chart.setOption(option)

          },

解决 开心

在这里插入图片描述
效果如上

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值