标签导航:

echarts 正负值柱状图同侧显示及数值正确显示详解

本文将详细讲解如何在 ECharts 中将正负值柱状图显示在同一侧,并确保数值正确显示。下图展示了最终效果:

如何在ECharts中让正负值柱状图显示在同一侧并正确显示数值?

实现这一目标需要对数据和图表配置进行调整:

一、数据预处理:

为了让正负值柱状图在同一侧显示,我们需要将负值转换为其绝对值。假设你的原始数据为 data1 和 data4,可以使用 Math.abs() 函数进行转换:

var displayData1 = data1.map(v => Math.abs(v));
var displayData4 = data4.map(v => Math.abs(v));

二、图表配置:

  1. 辅助系列: 引入一个辅助系列来绘制透明的柱状图,用于占位,从而使正负值柱状图显示在同一侧。将辅助系列的 itemStyle 配置为透明:
{
    name: '辅助',
    type: 'bar',
    stack: '总量', //  确保与其他系列堆叠
    itemStyle: {
        borderColor: 'transparent',
        color: 'transparent'
    },
    emphasis: {
        itemStyle: {
            borderColor: 'transparent',
            color: 'transparent'
        }
    },
    data: displayData1, // 使用处理后的绝对值数据
    // ...其他配置
}
  1. 其他系列 (收入、支出、其他): 调整其他系列的 label 配置,使用 formatter 函数显示正确的正负值:
label: {
    show: true,
    position: 'bottom', // 或 'top',根据需要调整
    formatter: function (params) {
        // 假设 params.value 为柱状图的值,data2 为对应的数据数组
        return data2[params.dataIndex] >= 0 ? ('+' + params.value) : ('-' + params.value);
    }
}
  1. Y 轴: 将 y 轴的 inverse 属性设置为 true,使正值在底部显示:
yAxis: {
    type: 'value',
    inverse: true
}

通过以上步骤,即可在 ECharts 中实现正负值柱状图同侧显示,并准确显示柱状图上的数值。 请确保你的数据结构和代码与示例相符,并根据你的实际数据调整 data1, data2, data4 等变量名。