echart柱状图堆列实现百分比显示

本文介绍了一个使用 ECharts 实现的退出项目与未退出项目的占比分析图表。通过对比两个系列的数据,直观展示了各业务线中已退出项目的比例,并利用标记点显示了具体的百分比。
let xAxisValue1 = [63, 89, 44, 34, 3, 98];
let xAxisValue2 = [23, 89, 44, 34, 3, 98];
option = {
  legend: {
    data: ['退出项目', '未退出项目'],
    bottom: 0
  },
  title: {
        text: '已退出项目占比',
        x: 'center',
        textAlign: 'center'
    },
  toolbox: {},
  color: ['rgb(116,142,222)', '#AD6D69'],
  tooltip: {},
  xAxis: {
    data: [
      '赛用业务线',
      '赛用业务线',
      '赛用业务线',
      '赛用业务线',
      '赛用业务线',
      '赛用业务线'
    ],

    axisLine: { show: false },
    splitLine: { show: false },
    splitArea: { show: false },
    axisTick: { show: false }
  },
  yAxis: {
    splitLine: { show: false },
    axisLabel: { show: false }
  },
  grid: {
    bottom: 100
  },
  series: [
    {
      name: '退出项目',
      type: 'bar',
      stack: 'one',
      data: xAxisValue1,
      label: {
        show: true,
        color: '#fff',
        formatter: function (a) {
          return a.data;
        }
      },
    },
    {
      name: '未退出项目',
      type: 'bar',
      stack: 'one',
      data: xAxisValue2,
      label: {
        show: true,
        color: '#fff',

        formatter: function (a) {
          return a.data;
        }
      },
      markPoint: {
        symbolSize: 0,
        data: formatterMake(xAxisValue1,xAxisValue2),
        label: {
          show: true,
          position: 'top',
          color: '#333',
        }
      }
    }
  ]
};
function formatterMake(v1,v2) {
  var arr = new Array();
  v1.map(function (item, i) {
    arr.push({
      coord: [i, v1[i]+v2[i]],
      value: Math.round(v1[i]/(v1[i]+v2[i])*100)+'%'
    });
  });
  return arr;
}

### 如何在 ECharts 柱状图中设置纵轴为百分比格式 为了使 ECharts柱状图能够以百分比形式展示数据,在配置 `yAxis` 或者 `xAxis` (取决于图表的方向)的时候,可以利用 `axisLabel` 属性中的自定义格式器函数来实现这一点。具体来说,可以通过修改该属性下的 `formatter` 来指定如何呈现标签文字。 对于希望转换成百分比的情况,通常还需要计算原始数值相对于总数的比例再乘以100得到具体的百分数。如果数据本身已经是比例的形式,则可以直接应用 `{value}%` 进行字符串拼接[^2]。 下面是一个简单的例子,展示了怎样通过 JavaScript 设置 Y 轴上的刻度作为百分比显示: ```javascript option = { xAxis: { type: 'category', data: ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun'] }, yAxis: [{ type: 'value', axisLabel: { formatter: '{value} %' // 将Y轴的值按照百分比方式显示 } }], series: [{ name: 'Sales', type: 'bar', data: [23, 24, 18, 25, 27, 28, 25], itemStyle :{ normal:{ label:{ show:true, position:'top',// 显示位置 formatter:function(params){ var total = params.data; // 此处假设data就是际要表示的数量 return Math.round(total/sum*100)+'%';// 计算并返回百分比 } } } } }] }; ``` 在这个案例里,除了调整 `yAxis.axisLabel.formatter` 外,还设置了系项 (`series`) 中每一个柱子顶部会显示出对应的具体百分比数值,这里使用了 `label.formatter` 函数来进行动态计算和格式化处理[^3]。 需要注意的是上述代码片段里的 `Math.round(total/sum*100)` 部分假定了有一个全局变量 `sum` 存储着所有销售量之和用于计算各天所占比例;践中应当根据际情况获取这个总和值。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值