echarts 多个柱状堆叠图 顶部显示总数

左边的柱状图顶部显示所有堆叠图数据的总和 右边柱状图顶部也显示所有堆叠数据的总和

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

方法

好多博主用的都是echarts中 barGap 为 ‘-100%’ 让两个系列的柱子重叠 从而实现顶部显示总数 但是这种方法只适合 这一个X轴 只有一个堆叠柱状图 我的需求是一个X轴项 有两个堆叠柱状图 用了这种方法后并不适用该项目,这种方法的思路是单独出一个数据 然后移动该数据的位置 从而实现重叠显示,既然这种思路不适用该项目 转变思路 直接改变他显示的lable不就可以了 有想法了就去实践

  1. 首先顶部显示数字
{
        name: lastAdStack.name,
        type: "bar",
        stack: "Ad",
        label: {
          normal: {
            show: true,// 显示label
            position: "top", // 显示的label的位置
          }
        },
        data: [],//数据
      }
  1. 显示出来label后 只需要修改label的显示就可以了

label提供了一个formatter 方法 来对显示的文字进行处理,、只需要在你堆叠柱状图的最后一个数据上这么处理就可以修改他的显示label 但是他的data数据不要改变 这样就不会影响到他的柱状高度的显示 同时label进行了修改

{
        name: lastAdStack.name,
        type: "bar",
        stack: "Ad",
        label: {
          normal: {
            show: true,
            position: "top",
        // 首先把所有项的总和都算出来按照固定的顺序方法zonghe这个数组中  
          然后在方法中用下标对应上总和方法 return出来就可以改变他的label现实文字
            formatter: function (params) {
              var index = params.dataIndex;
              return zonghe[index]
            },      
          }


        },

        data: [],
      }

这样基本完事  后面的第二个柱状图也是这样  只要放到zonghe这个数组中的数据跟你显示的数据能一一对应上 数据就不会错 鼠标悬浮上显示的tooltip数据也不会错 

假如你想在鼠标悬浮时tooltip中不显示某一项
在echarts的option中 tooltip设置项

tooltip: {
          trigger: "axis",
          axisPointer: {
            type: "shadow",
          },
          formatter: (params) => {
            var res = params[0].name
            for (var i = 0; i < params.length; i++) {
              if (this.adStackArr[params[i].seriesIndex].name != null) {  
		    // 这行代码就是判断语句 具体情况 具体分析  自己打印params 来实现自己的判断

                res += `<div >
                  <span style="display:inline-block;margin-right:5px;border-radius:50%;width:10px;height:10px;background-color:${[
                    params[i].color,
                  ]};"></span>
                  ${params[i].seriesName}
                  ${params[i].data}
                </div>`;
              }
            }
            return res; //最后返回的数据得一个字符串 并且支持html css 显示我用的都是行内式样式 拼接成一个字符串 给最后显示 数遍悬浮的样式也是在这里设置 你的字符串是什么样式  渲染出来就是什么样的
          }
        },

至此 大功告成

  • 0
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
回答: 在echarts中实现堆叠柱状显示总数的方法有多种。其中一种方法是使用barGap属性为'-100%',让两个系列的柱子重叠以实现顶部显示总数的效果。但是这种方法只适合于一个X轴项且只有一个堆叠柱状的情况。如果需要在一个X轴项上显示两个堆叠柱状,可以考虑改变label的显示来实现。具体做法是在柱状的配置中,设置label属性的show为true,position为top,即可在柱子顶部显示数字。以上是几种常见的方法,具体应根据实际需求来选择合适的方法。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [echarts 多个柱状堆叠 顶部显示总数](https://blog.csdn.net/weixin_44167138/article/details/131064070)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT0_1"}}] [.reference_item style="max-width: 33.333333333333336%"] - *2* [echart柱状堆叠总计显示](https://blog.csdn.net/a15206087013/article/details/108706372)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT0_1"}}] [.reference_item style="max-width: 33.333333333333336%"] - *3* [Echarts 堆叠柱状显示总数](https://blog.csdn.net/qq_44879525/article/details/102521303)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT0_1"}}] [.reference_item style="max-width: 33.333333333333336%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值