Echarts堆叠柱状上边显示合计内容

前言

        实现堆叠的核心是stack属性!只要两个柱状图的stack值相同,就会堆叠在一起,否则就会并排放置

实现效果

 实现代码

{
      name: '统计',
      type: 'bar',
      stack: '堆叠在一起',
      data: [0, 0, 0, 0, 0, 0, 0], //默认数据
      label: {
        normal: {
          show: true,
          position: 'top',
          formatter: function (params) {
            //合计数据
            var total = ['9', '16', '4', '9', '5', '3', '12'];
            return '合计:'+total[params.dataIndex];
          },
          fontSize: 16,
          fontWeight: 'bold',
          textStyle: { color: '#000' }
       }
    }
}

调试环境

点击访问ECharts调试环境https://echarts.apache.org/examples/zh/editor.html?c=bar-stackicon-default.png?t=LA92https://echarts.apache.org/examples/zh/editor.html?c=bar-stack

调试代码

option = {
  tooltip: {
    trigger: 'axis',
    axisPointer: {
      // 坐标轴指示器,坐标轴触发有效
      type: 'shadow' // 默认为直线,可选为:'line' | 'shadow'
    },
    formatter: function (params) {
      //x轴的名称
      var htmlStr = params[0].name + '<br/>';
      for (var i = 0; i < params.length; i++) {
        var param = params[i];
        if (param.value > 0) {
          htmlStr += '<div>';
          //为了保证和原来的效果一样,复制的是:param.marker的源码,圆点样式:param.color
          htmlStr +='<span style="display:inline-block;margin-right:5px;border-radius:10px;width:10px;height:10px;background-color:' +param.color +';"></span>';
          // 名称颜色设置
          // htmlStr += '<span style="color:'+param.color+'">';
          //圆点后面显示的名称
          htmlStr += param.seriesName + ':' + param.value;
          // htmlStr += '</span>';
          htmlStr += '</div>';
        }
      }
      return htmlStr;
    }
  },
  legend: {
    data: [
      '直接访问',
      '邮件营销',
      '联盟广告',
      '视频广告',
      '搜索引擎',
      '百度',
      '谷歌',
      '必应',
      '其他'
    ]
  },
  grid: {
    left: '3%',
    right: '4%',
    bottom: '3%',
    containLabel: true
  },
  xAxis: [
    {
      type: 'category',
      data: ['周一', '周二', '周三', '周四', '周五', '周六', '周日']
    }
  ],
  yAxis: [
    {
      type: 'value'
    }
  ],
  series: [
    {
      name: '直接访问',
      type: 'bar',
      stack: '广告',
      emphasis: {
        focus: 'series'
      },
      data: [1, 4, 0, 0, 0, 0, 3]
    },
    {
      name: '邮件营销',
      type: 'bar',
      stack: '广告',
      emphasis: {
        focus: 'series'
      },
      data: [0, 0, 1, 3, 1, 1, 0]
    },
    {
      name: '联盟广告',
      type: 'bar',
      stack: '广告',
      emphasis: {
        focus: 'series'
      },
      data: [6, 0, 1, 1, 3, 1, 0]
    },
    {
      name: '视频广告',
      type: 'bar',
      stack: '广告',
      emphasis: {
        focus: 'series'
      },
      data: [0, 0, 0, 0, 0, 0, 0]
    },
    {
      name: '搜索引擎',
      type: 'bar',
      stack: '广告',
      data: [0, 0, 1, 5, 1, 1, 0],
      emphasis: {
        focus: 'series'
      }
    },
    {
      name: '百度',
      type: 'bar',
      stack: '广告',
      emphasis: {
        focus: 'series'
      },
      data: [0, 0, 1, 0, 0, 0, 0]
    },
    {
      name: '谷歌',
      type: 'bar',
      stack: '广告',
      emphasis: {
        focus: 'series'
      },
      data: [1, 4, 0, 0, 0, 0, 3]
    },
    {
      name: '必应',
      type: 'bar',
      stack: '广告',
      emphasis: {
        focus: 'series'
      },
      data: [1, 4, 0, 0, 0, 0, 3]
    },
    {
      name: '其他',
      type: 'bar',
      stack: '广告',
      emphasis: {
        focus: 'series'
      },
      data: [0, 4, 0, 0, 0, 0, 3]
    },
    {
      name: '统计',
      type: 'bar',
      stack: '广告',
      data: [0, 0, 0, 0, 0, 0, 0], //模拟数据
      label: {
        normal: {
          show: true,
          position: 'top',
          formatter: function (params) {
            var total = ['9', '16', '4', '9', '5', '3', '12'];
            return '合计:'+total[params.dataIndex];
          },
          fontSize: 16,
          fontWeight: 'bold',
          textStyle: { color: '#000' }
        }
      }
    }
  ]
};

如果出现以下情况

  • 4
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
回答: 在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 ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值