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

如何让Highstock面积图指定Zone的渐变填充位于折线上方?

解决Highstock面积图渐变填充显示在折线上方的问题

要实现特定区域的渐变填充显示在折线上方,核心是调整**阈值(threshold)和渐变方向(linearGradient)**的配合,具体修改如下:

关键逻辑

Highstock的面积图填充区域是折线与threshold设定值之间的范围:

  • 当threshold: Infinity时,填充区域为折线到图表顶部(即折线上方)
  • 当threshold设为0或其他数值时,填充区域为折线到该数值对应的位置(通常是折线下方)

针对需要上方填充的区域,你需要:

  1. 将threshold设为Infinity,指定填充范围为折线到顶部
  2. 反转linearGradient的y轴方向,并调整颜色停止点的顺序,让渐变从折线位置(下方)向顶部(上方)由不透明过渡到透明

修改后的配置代码

zones: [
  {
    value: firstDatasetValue,
    color: '#ff6968',
    fillColor: {
      linearGradient: { x1: 0, y1: 1, x2: 0, y2: 0 }, // 渐变方向从下到上(折线位置到顶部)
      stops: [
        [0, "rgba(255, 105, 104, 0.3)"], // 折线附近颜色较深
        [1, "rgba(255, 105, 104, 0)"],   // 顶部位置完全透明
      ],
    },
    threshold: Infinity, // 指定填充到图表顶部(折线上方)
  },
  {
    color: '#94caae',
    fillColor: {
      linearGradient: { x1: 0, y1: 0, x2: 0, y2: 1 }, // 渐变方向从上到下(顶部到折线位置)
      stops: [
        [0, "rgba(34, 197, 94, 0)"],     // 顶部透明
        [1, "rgba(34, 197, 94, 0.3)"],   // 折线附近颜色较深,填充到下方阈值0
      ],
    },
    threshold: 0 // 指定填充到0值位置(折线下方)
  }
]

说明

  • 第一个zone(红色)通过threshold: Infinity将填充范围锁定在折线上方,配合反转的渐变方向,实现从折线到顶部的透明渐变
  • 第二个zone(绿色)保持threshold: 0,填充范围在折线下方,渐变方向为默认的从上到下,实现顶部透明、靠近折线处不透明的效果

内容的提问来源于stack exchange,提问作者ii iml0sto1

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.11 10:20:41