You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Highcharts热力图能否配置双colorAxis实现分区色彩渐变?

在Highcharts热力图中实现双colorAxis效果

嘿,这个需求挺有意思的!Highcharts原生确实不支持给单个热力图系列直接绑定两个colorAxis,但咱可以通过拆分数据+多系列叠加的思路来实现你想要的“一半白蓝渐变、一半白红渐变”的效果,具体操作如下:

核心思路

把原始数据集按你想要的分界(比如x轴中线、y轴中线)拆分成两个独立的子集,分别对应两个热力图系列,再给每个系列绑定单独的colorAxis,就能实现分区渐变的效果了。

具体实现步骤

1. 拆分数据集

比如你想以x轴的第5个刻度为分界,把所有x<5的数据归为“白蓝渐变组”,x≥5的数据归为“白红渐变组”,确保两个组的数据区域不重叠。

2. 配置双colorAxis

在colorAxis数组里定义两个独立的颜色轴,分别设置对应的渐变色彩,还可以调整它们的显示位置(比如一个左轴、一个右轴)避免重叠:

colorAxis: [
    {
        min: 0, // 对应数据的最小值
        max: 100, // 对应数据的最大值
        stops: [
            [0, '#ffffff'], // 起始色白色
            [1, '#0066cc']  // 结束色蓝色
        ],
        position: 'left',
        title: { text: '白蓝渐变' }
    },
    {
        min: 0,
        max: 100,
        stops: [
            [0, '#ffffff'], // 起始色白色
            [1, '#cc3300']  // 结束色红色
        ],
        position: 'right',
        title: { text: '白红渐变' }
    }
]

3. 配置双热力图系列

创建两个heatmap类型的系列,分别绑定对应的colorAxis,并传入拆分后的数据集:

series: [
    {
        type: 'heatmap',
        name: '白蓝区域',
        colorAxis: 0, // 绑定第一个colorAxis
        data: [
            // 这里放x<5的所有数据点,格式为[x, y, value]
            [0, 0, 25], [0, 1, 40], [1, 0, 30], [1, 1, 55], ...
        ]
    },
    {
        type: 'heatmap',
        name: '白红区域',
        colorAxis: 1, // 绑定第二个colorAxis
        data: [
            // 这里放x≥5的所有数据点
            [5, 0, 60], [5, 1, 75], [6, 0, 45], [6, 1, 80], ...
        ]
    }
]

注意事项

  • 确保两个系列的数据区域完全不重叠,避免颜色覆盖导致显示混乱;
  • 如果需要统一数据的数值范围,两个colorAxis的min和max最好保持一致,这样颜色映射的逻辑更统一;
  • 可以通过调整colorAxis的labels、title等属性优化显示效果,也可以给系列设置borderWidth: 0让过渡更自然。

内容的提问来源于stack exchange,提问作者Antonio Sou

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.19 10:19:01