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

AM5热力地图自定义函数:设置颜色范围并单独处理0值

AM5美国地图颜色渐变解决方案

需求说明

  • 数值1-100之间实现平滑颜色渐变(多数值集中在20以内)
  • 0值单独设置为浅灰色/白色,不参与渐变计算

原代码问题分析

原代码的customFunction存在语法错误,else块仅定义了颜色的min/max但未执行实际的颜色计算与赋值逻辑,无法实现预期效果。

可行实现代码

// 定义渐变的起始(浅橙)和结束(深棕)颜色
const colorMin = am5.color(0xff621f);
const colorMax = am5.color(0x661f00);

polygonSeries.set("heatRules", [{
  target: polygonSeries.mapPolygons.template,
  dataField: "value",
  key: "fill",
  customFunction: function(sprite, min, max, value) {
    if (value <= 0) {
      // 0值设置为浅灰色(可替换为0xffffff白色)
      sprite.set("fill", am5.color(0xf0f0f0));
    } else {
      // 将数值限制在1-100区间,避免超出范围导致颜色异常
      const clampedValue = Math.max(1, Math.min(value, 100));
      // 计算当前值在1-100范围内的占比
      const ratio = (clampedValue - 1) / (100 - 1);
      // 插值计算对应颜色,实现平滑过渡
      const interpolatedColor = am5.color(
        am5.colorInterpolation(colorMin, colorMax, ratio)
      );
      sprite.set("fill", interpolatedColor);
    }
  }
}]);

代码说明

  • 先明确渐变的起止颜色,可根据需求自行调整色值
  • 对0值直接设置固定填充色,排除在渐变逻辑外
  • 针对1及以上的数值,先做区间限制(防止数值超过100或低于1),再通过am5.colorInterpolation方法计算对应比例的渐变颜色,实现平滑过渡

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.29 21:37:23