页面树结构

版本比较

标识

  • 该行被添加。
  • 该行被删除。
  • 格式已经改变。


...

注意

提示:本文档的示例代码仅适用于本文档中的示例报表/场景。若实际报表/场景与示例代码无法完全适配(如使用功能不一致,或多个宏代码冲突等),需根据实际需求开发代码。

说明

如何实现堆积柱图上显示合计值,就是在红框位置显示合计值。

...

 注:此宏代码不支持同时显示柱图的数据标签,若是需要显示数据标签,需要修改宏代码。

...


代码块
linenumberstrue
/**
 * 宏类型:ClientSide(服务端)
 * 对象:chart
 * 事件:afterRenderer
 */
 function main(chartView) {
    var options = chartView.getChartObject().getOptions();
    var series = options.series;
    var totals = buildTotal(series);
    var lastIndex = series.length - 1;
    series[lastIndex].label = {
        normal: {
            position: 'top',
            show: true,
            formatter: function(a) {
                return totals[a.dataIndex];
            }
        },
        emphasis: {
            position: 'top',
            show: true,
            formatter: function(a) {
                return totals[a.dataIndex];
            }
        }
    }
    chartView.getChartObject().getChart().setOption(options);
}
function buildTotal(series) {
    var totalLength = series[0].data.length;
    var totals = [];
    for (var k = 0; k < totalLength; k++) {
        totals[k] = 0;
    }
    for (var i = 0; i < series.length; i++) {
        for (var j = 0; j < series[i].data.length; j++) {
            totals[j] += getValue(series[i].data[j].value);
        }
    }
    return totals;
}

//获取数据项的值
function getValue(value) {
    if (Array.isArray(value)) {
        return value[1];
    } else {
        value;
    }
}
 



4.最终效果图:

另:若图形是横条图,按照下图修改最后面的代码。

...