Highcharts 双 Y 轴分组错位柱状图・代码详解

双 Y 轴、非分组错位并列柱状图,同时展示两类指标:

  • 左轴:员工数量(人数,普通数值)
  • 右轴:利润(百万美元,金额) 同一分类下 4 根柱子错开摆放,不会互相重叠,用来对比「优化前 / 优化后」两组数据差异。

示例代码

javascript 复制代码
Highcharts.chart('container', {
    chart: {
        type: 'column'
    },
    title: {
        text: 'Efficiency Optimization by Branch'
    },
    xAxis: {
        categories: [
            'Seattle HQ',
            'San Francisco',
            'Tokyo'
        ]
    },
    yAxis: [{
        min: 0,
        title: {
            text: 'Employees'
        }
    }, {
        title: {
            text: 'Profit (millions)'
        },
        opposite: true
    }],
    legend: {
        shadow: false
    },
    tooltip: {
        shared: true
    },
    plotOptions: {
        column: {
            grouping: false,
            shadow: false,
            borderWidth: 0
        }
    },
    series: [{
        name: 'Employees Optimized',
        color: 'rgba(126,86,134,1)',
        data: [140, 90, 40],
        pointPadding: 0.3,
        pointPlacement: -0.2
    }, {
        name: 'Profit Optimized',
        color: 'rgba(186,60,61,.9)',
        data: [203.6, 198.8, 208.5],
        tooltip: {
            valuePrefix: '$',
            valueSuffix: ' M'
        },
        pointPadding: 0.3,
        pointPlacement: 0.2,
        yAxis: 1
    }, {
        name: 'Employees',
        color: 'rgba(165,170,217,1)',
        data: [150, 73, 20],
        pointPadding: 0.4,
        pointPlacement: -0.2
    }, {
        name: 'Profit',
        color: 'rgba(248,161,63,.9)',
        data: [183.6, 178.8, 198.5],
        tooltip: {
            valuePrefix: '$',
            valueSuffix: ' M'
        },
        pointPadding: 0.4,
        pointPlacement: 0.2,
        yAxis: 1
    }]
});

核心关键参数讲解

1、grouping: false

默认 grouping:true:同 X 分类的柱子会自动紧紧并排。 设置为 false → 取消自动分组 ,柱子位置交给 pointPlacement 手动偏移,实现错位效果。

2、pointPlacement(偏移量)

  • 负数:柱子向 X 轴标签左侧 偏移
  • 正数:柱子向 X 轴标签右侧 偏移 示例 -0.20.2,让员工柱子靠左、利润柱子靠右。

取值范围一般 -0.5 ~ 0.5,超出范围柱子会跑到别的分类下。

3、双 Y 轴绑定 yAxis: 1

yAxis 数组下标从 0 开始

  • yAxis:0 → 左轴(员工数)
  • yAxis:1 → 右轴(利润) 系列里写上 yAxis:1,该条数据就使用右侧坐标轴刻度。

4、tooltip.shared: true

鼠标悬停某一个 X 点位,一次性把 4 条系列的数据全部展示出来,适合多指标对比场景。

适用业务场景

  1. 同一维度两套不同量级指标对比(人数 vs 营收、产量 vs 能耗)
  2. 优化前后、改造前后效果对比柱状图
  3. 大屏看板双指标错位对比图表

常见坑点

  1. 忘记关闭 grouping:falsepointPlacement 偏移不生效
  2. 偏移值过大,柱子跨到相邻分类,布局错乱
  3. 双 Y 轴忘记写 opposite:true,两根坐标轴重叠在一起
相关推荐
躺柒7 小时前
读数据可视化37开发工具
信息可视化·数据挖掘·数据分析·可视化·数据可视化·web应用·应用程序
躺柒1 天前
读数据可视化36可视化软件
信息可视化·可视化·数据可视化·科学可视化·医学可视化
xhload3d2 天前
图扑智慧工厂 | 继电器产线仿真态势管控平台
物联网·低代码·webgl·数字孪生·可视化·智慧工厂·工业互联网·hightopo
Highcharts.js2 天前
Highcharts 高阶交互 Demo|极坐标气泡图+ 环形饼图
highcharts·可视化图表·交互图表·气泡图·极坐标图
躺柒2 天前
读数据可视化35商业智能与金融数据
信息可视化·金融·可视化·数据可视化·商业智能·风险分析
躺柒3 天前
读数据可视化34其他科学与艺术
网络安全·信息可视化·气象学·可视化·数据可视化·气候模型
Highcharts.js4 天前
Highcharts 多Y轴折线图入门讲解:让不同单位的数据在一张图中正确表达
信息可视化·数据挖掘·数据分析·highcharts·图表工具·自定义图表·y轴多图
躺柒4 天前
读数据可视化33生命科学(下)
信息可视化·可视化·数据可视化·医学·临床医学·生命科学
ManageEngine卓豪4 天前
如何用 OpenTelemetry 实现企业分布式应用的全链路可视化?Applications Manager 集成方案与配置
可视化·apm·应用性能管理·分布式应用
Highcharts.js6 天前
常见报错排雷指南2:导出失败的官方解法
javascript·react.js·ecmascript·highcharts·可视化图表·导出模块失败·导出服务