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.2、0.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:false → pointPlacement 偏移不生效
  2. 偏移值过大,柱子跨到相邻分类,布局错乱
  3. 双 Y 轴忘记写 opposite:true,两根坐标轴重叠在一起
相关推荐
Linux_cy3 天前
服务器管理方案选型:面板 / SSH 客户端 / 桌面型客户端怎么选
java·linux·运维·服务器·ssh·可视化·gmssh
Highcharts.js5 天前
2026年,AI正在重写技术:“工具思维”正在失效?
人工智能·echarts·客户端·highcharts·可视化图表·企业级图表
Highcharts.js5 天前
Highcharts甘特图开发带导航功能的项目管理图示例
开发语言·前端·javascript·甘特图·highcharts·项目管理图
周永恒5 天前
汉字字形 SVG 库整理
svg·许可·汉字·字形
Highcharts.js9 天前
BI可视化图表“维护难”问题的解决方案
开发语言·前端·javascript·编辑器·ecmascript·bi·highcharts
Highcharts.js12 天前
Highcharts 发布16项最新安全公告
人工智能·安全·性能优化·highcharts·可视化图表
Highcharts.js13 天前
Highcharts 数据过滤实战指南:从基础实现到性能优化
javascript·性能优化·bi·highcharts·前端可视化·数据过滤·交互图表
把我格子衫拿来13 天前
VTK 体绘制入门到排错:传递函数、采样距离与透明度的关系
python·vtk·可视化·医学影像·体绘制
Highcharts.js13 天前
AI图表开发工具Highcharts Assist|自然语言生成图表代码
javascript·人工智能·highcharts·开发神器
Highcharts.js14 天前
Highcharts React v5 正式发布:支持 ESM、更简洁的组件、更出色的开发体验
前端·react.js·前端框架·数据可视化·highcharts·前端可视化·esm