echarts 堆叠柱状图 顶部添加合计

 先看效果图

一、上代码

//主要是添加这一句
{
      name: '综合',
      type: 'bar',
      stack: 'total',
      label: {
        show: true,
        position: 'top',
        formatter: function (p) { //这里处理展示的数据和
          let sum = arr[p.dataIndex] + arr1[p.dataIndex];
          return sum;
        }
      },
      emphasis: {
        focus: 'series'
      },
      data: [0, 0, 0, 0, 0]//为了隐藏总计bar
    }
let arr=[1,2,3,4,5],arr1=[1,2,3,4,5];
option = {
 
  legend: {//这里自定义legend 隐藏总计
    data: [{
    name: 'Direct',
    // 强制设置图形为圆。
    icon: 'circle',
    // 设置文本为红色
    textStyle: {
        color: 'red'
        }
    },{
        name: 'Mail Ad',
        // 强制设置图形为圆。
        icon: 'circle',
        // 设置文本为红色
        textStyle: {
            color: 'red'
        }
    }]
  },
  grid: {
    left: '3%',
    right: '4%',
    bottom: '3%',
    containLabel: true
  },
  yAxis: {
    type: 'value'
  },
  xAxis: {
    type: 'category',
    data: ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun']
  },
  series: [
    {
      name: 'Direct',
      type: 'bar',
      stack: 'total',
      label: {
        show: true
      },
      emphasis: {
        focus: 'series'
      },
      data: arr
    },
    {
      name: 'Mail Ad',
      type: 'bar',
      stack: 'total',
      label: {
        show: true
      },
      emphasis: {
        focus: 'series'
      },
      data: arr1
    },
    {
      name: '综合',
      type: 'bar',
      stack: 'total',
      label: {
        show: true,
        position:'top',
        formatter:function(p){
          let sum = arr[p.dataIndex] + arr1[p.dataIndex];
          return sum
        }
      },
      emphasis: {
        focus: 'series'
      },
      data: [0,0,0,0,0]
    }
  ]
};

这里顶部已经可以显示总数了,但是弹出框还存在综合,做个判断隐藏掉即可

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 显示我用的都是行内式样式 拼接成一个字符串 给最后显示 数遍悬浮的样式也是在这里设置 你的字符串是什么样式  渲染出来就是什么样的
          }
        },

  • 4
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
您可以通过以下步骤在 ECharts 堆叠柱状图顶部添加总和: 1 首先,确保您已经引入 ECharts 的库文件,并创建了一个用于染图表的容。 2. 创建一个包含所有数据的数组,在每个子数组中,第一个值是类别名称,后续的值是对应类别的数据。 3. 使用 ECharts 提供的 `series` 配置项来配置堆叠柱状图。在 `series` 的 `data` 属性中,将每个类别的数据传入。 4. 在堆叠柱状图的 `series` 配置项中,使用 `label` 属性来设置标签样式。其中,`formatter` 属性可以用来自定义显示的文本内容。 下面是一个示例代码: ```javascript // 创建堆叠柱状图的容器 var container = document.getElementById('chart-container'); var chart = echarts.init(container); // 示例数据 var data = [ ['类别1', 100, 200, 300], ['类别2', 150, 250, 350], ['类别3', 200, 300, 400] ]; // 配置堆叠柱状图的 series var series = data.map(function (item) { return { name: item[0], type: 'bar', stack: '总量', label: { show: true, position: 'top', formatter: function (params) { // 计算总和 var sum = 0; for (var i = 1; i < item.length; i++) { sum += item[i]; } return '总和: ' + sum; } }, data: item.slice(1) }; }); // 配置图表的 option var option = { legend: {}, tooltip: {}, xAxis: { data: ['一月', '二月', '三月'] }, yAxis: {}, series: series }; // 渲染图表 chart.setOption(option); ``` 在上述示例中,我们通过 `formatter` 函数计算并显示了每个类别的数据总和,并设置了标签显示柱状图顶部。 您可以根据自己的需求修改示例代码中的数据和配置项,以适应您的项目。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Z_Xshan

你的鼓励是我最大的动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值