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

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

方法

好多博主用的都是echartsbarGap 为 ‘-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中不显示某一项
echartsoptiontooltip设置

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

至此 大功告成

原文地址:https://blog.csdn.net/weixin_44167138/article/details/131064070

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任

如若转载,请注明出处:http://www.7code.cn/show_27484.html

如若内容造成侵权/违法违规/事实不符,请联系代码007邮箱suwngjj01@126.com进行投诉反馈,一经查实,立即删除

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注