Highcharts 多Y轴折线图入门讲解:让不同单位的数据在一张图中正确表达

文章定位

目标读者: Highcharts 初学者、前端开发者、数据分析人员。

学习目标:

  • 理解为什么需要多个 Y 轴;
  • 掌握 Highcharts 折线图基础配置;
  • 学会配置两个 Y 轴;
  • 理解 yAxis 与 series.yAxis 的绑定关系;
  • 避免双轴图最常见的误读问题。

重点内容:

  • 多 Y 轴的使用场景;
  • 单轴图与双轴图的差异;
  • yAxis 数组配置;
  • series.yAxis 绑定;
  • 左右轴布局;
  • 单位、颜色和 Tooltip 的基本设计。

发表于2026年9月

在数据可视化中,我们经常需要同时观察多个指标。

例如:

  • 销售额,单位是万元;
  • 订单量,单位是件;
  • 转化率,单位是百分比;
  • 客单价,单位是元。

这些指标通常共享相同的时间维度,因此很适合放在一张趋势图中。但它们的单位和数量级不同,如果全部使用同一个 Y 轴,较小的指标可能会被压缩,无法清晰展示。

这正是多 Y 轴折线图的应用场景。


一、先从单 Y 轴折线图开始

Highcharts 的基础折线图结构非常简单:

javascript 复制代码
Highcharts.chart('container', {
    title: {
        text: '月度销售额趋势'
    },

    xAxis: {
        categories: ['一月', '二月', '三月', '四月', '五月', '六月']
    },

    yAxis: {
        title: {
            text: '销售额(万元)'
        }
    },

    series: [{
        name: '销售额',
        data: [120, 135, 128, 160, 175, 190]
    }]
});

其中:

  • xAxis.categories 定义横轴分类;
  • yAxis 定义纵轴;
  • series 定义折线数据;
  • series.name 会显示在图例和 Tooltip 中。

二、为什么销售额和订单量不适合共用一个 Y 轴

假设我们同时展示:

text 复制代码
销售额:120、135、160、190
订单量:32、40、51、66

虽然它们都可以绘制在同一个坐标系中,但两者单位不同:

  • 销售额的单位是万元;
  • 订单量的单位是件。

如果指标数量级差异更大,例如销售额为数万,而订单量只有几十,那么订单量折线会贴近 X 轴,用户无法判断其变化趋势。

因此,我们可以为不同指标配置独立的 Y 轴。


三、配置两个 Y 轴

在 Highcharts 中,单个 Y 轴可以写成对象:

javascript 复制代码
yAxis: {
    title: {
        text: '销售额'
    }
}

多个 Y 轴则需要写成数组:

javascript 复制代码
yAxis: [{
    title: {
        text: '销售额(万元)'
    }
}, {
    title: {
        text: '订单量(件)'
    },
    opposite: true
}]

这里:

  • 第一个 Y 轴索引为 0;
  • 第二个 Y 轴索引为 1;
  • opposite: true 将第二个 Y 轴放置在右侧。

四、通过 series.yAxis 绑定坐标轴

每个系列都可以通过 series.yAxis 指定所使用的 Y 轴:

javascript 复制代码
Highcharts.chart('container', {
    title: {
        text: '销售额与订单量'
    },

    xAxis: {
        categories: ['一月', '二月', '三月', '四月', '五月', '六月']
    },

    yAxis: [{
        title: {
            text: '销售额(万元)'
        }
    }, {
        title: {
            text: '订单量(件)'
        },
        opposite: true
    }],

    series: [{
        name: '销售额',
        data: [120, 135, 128, 160, 175, 190],
        yAxis: 0
    }, {
        name: '订单量',
        data: [32, 40, 38, 51, 58, 66],
        yAxis: 1
    }]
});

绑定关系如下:

系列 使用的 Y 轴
销售额 yAxis: 0
订单量 yAxis: 1

如果没有指定 series.yAxis,默认使用第一个 Y 轴。


五、让颜色帮助用户建立对应关系

多轴图中,颜色是一种重要的辅助编码方式。

可以让:

  • 销售额折线使用蓝色;
  • 左侧 Y 轴使用蓝色;
  • 订单量折线使用橙色;
  • 右侧 Y 轴使用橙色。
javascript 复制代码
Highcharts.chart('container', {
    title: {
        text: '销售额与订单量'
    },

    xAxis: {
        categories: ['一月', '二月', '三月', '四月', '五月', '六月']
    },

    yAxis: [{
        title: {
            text: '销售额(万元)',
            style: {
                color: '#2f7ed8'
            }
        },
        labels: {
            style: {
                color: '#2f7ed8'
            },
            format: '{value} 万元'
        },
        lineColor: '#2f7ed8',
        lineWidth: 2
    }, {
        title: {
            text: '订单量(件)',
            style: {
                color: '#ed7d31'
            }
        },
        labels: {
            style: {
                color: '#ed7d31'
            },
            format: '{value} 件'
        },
        lineColor: '#ed7d31',
        lineWidth: 2,
        opposite: true
    }],

    series: [{
        name: '销售额',
        data: [120, 135, 128, 160, 175, 190],
        yAxis: 0,
        color: '#2f7ed8'
    }, {
        name: '订单量',
        data: [32, 40, 38, 51, 58, 66],
        yAxis: 1,
        color: '#ed7d31'
    }]
});

颜色可以帮助用户快速识别系列与轴的关系,但不能依赖颜色传达全部信息。坐标轴标题、图例和单位仍然必不可少。


六、共享 Tooltip 查看同一时间点的数据

如果用户希望在同一时间点同时查看多个指标,可以设置:

javascript 复制代码
tooltip: {
    shared: true
}
javascript 复制代码
tooltip: {
    shared: true,
    valueDecimals: 2
}

共享 Tooltip 能够回答:

六月份的销售额是多少?订单量是多少?

对于不同单位的数据,建议在 Tooltip 中显示单位,避免用户误读。


七、什么时候适合使用多 Y 轴

多 Y 轴适合以下场景:

  1. 多个指标具有相同的时间或分类维度;
  2. 指标之间需要进行趋势层面的观察;
  3. 指标单位不同,但仍然需要紧凑展示;
  4. 每个指标都能清晰标注单位和对应的坐标轴。

不建议仅仅为了节省空间,把没有关联的指标放在同一张图中。


八、总结

Highcharts 多 Y 轴的核心配置可以概括为:

javascript 复制代码
yAxis: [
    {
        title: {
            text: '左侧指标'
        }
    },
    {
        title: {
            text: '右侧指标'
        },
        opposite: true
    }
],

series: [
    {
        name: '指标一',
        yAxis: 0,
        data: []
    },
    {
        name: '指标二',
        yAxis: 1,
        data: []
    }
]

真正重要的不是"配置了几个 Y 轴",而是:

  • 每个轴的单位是否清楚;
  • 每个系列是否绑定正确;
  • 图例、颜色和 Tooltip 是否形成一致的认知关系;
  • 用户能否准确理解数据。

下一篇将进一步讨论多 Y 轴图的组合图类型、动态数据、百分比轴、时间轴和工程化配置。

于2026年9月总结

相关推荐
weixin_382395233 小时前
本地部署 ERP 选型记录:从 Excel 到轻量系统的这几年
数据库·人工智能·数据挖掘
计算机毕业编程指导师3 小时前
【计算机毕设选题推荐】基于Spark与Hadoop的AI就业收入区域差异分析系统 源码 毕业设计 选题推荐 毕设选题 数据分析 机器学习 深度学习
大数据·python·数据分析·spark·毕业设计·课程设计·ai就业收入
EasyBr指纹浏览器3 小时前
抖音账号诊断:公开作品样本能说明什么?
数据分析·开源·内容运营·抖音
Highcharts.js4 小时前
Highcharts 仪表板编辑器 Dashboards介绍
数据可视化·仪表盘·大屏端·highcharts·dashboards·企业驾驶舱
成为深度学习高手4 小时前
TimeBridge:用Integrated Attention与Cointegrated Attention分别桥接短期平稳与长期协整的时序预测模型
人工智能·机器学习·数据挖掘
成为深度学习高手5 小时前
SEMixer:以随机注意力增强patch语义、渐进混合多尺度的轻量长期时序预测模型
人工智能·深度学习·机器学习·数据挖掘·时间序列
benchmark_cc5 小时前
A股量化尾盘筛选对数据时效敏感:行情链路变慢时先排查哪里?
python·数据分析·pandas·量化交易·股票数据·quantdash
计算机毕业设计杰瑞6 小时前
【2027最新精品大数据】基于大数据的全国各地景点指数数据可视化分析,附源码_高质量项目_可视化_数据分析_毕设选题推荐_SPark_Hadoop_毕设指导
大数据·信息可视化·数据分析
Highcharts.js6 小时前
可视化商用图表库对比,如何选择?
前端·javascript·学习·信息可视化·highcharts·前端可视化
计算机毕业设计杰瑞6 小时前
【2027精品大数据项目】基于大数据的全球太空探索数据分析与可视化,附源码_数据可视化_数据分析_毕设选题_SPark_Hadoop_文档指导ppt
大数据·信息可视化·数据挖掘·课程设计