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

基于Folium与Pandas实现t/a数值关联渐变着色热力圆点地图问题排查

问题原因

你当前代码不生效的核心原因是:gradient、blur、max_zoom 这些参数是热力图folium.HeatMap的专属配置,普通的folium.Circle类不会识别这些参数,所以所有圆点都会使用默认的蓝色样式。

解决方法

我们可以借助branca的线性色阶工具,把t/a字段的数值直接映射到黄→橙→红的渐变色彩上,再把对应颜色传给Circle的填充色参数即可,修改后代码如下:

import pandas as pd
import folium
from branca.colormap import LinearColormap

# 读取数据
df_bedarf = pd.read_csv('C:/Users/xxxxxx/Desktop/xxxxx/xxxxxx.csv', sep = ";")

# 初始化颜色映射规则:黄→橙→红,范围匹配t/a的最小、最大值
color_map = LinearColormap(
    colors=["yellow", "orange", "red"],
    vmin=df_bedarf["t/a"].min(),
    vmax=df_bedarf["t/a"].max()
)

# 初始化地图
map_points = folium.Map(location = [47.57087, 13.43828], zoom_start = 7)

# 循环添加圆点
for _, row in df_bedarf.iterrows():
    folium.Circle(
        location = [row["Latitude"], row["Longitude"]],
        popup = f"{row['Suburb']}: {row['Sort']}(t/a:{row['t/a']})",
        radius = 10000,
        # 配置圆点颜色
        color = color_map(row["t/a"]), # 描边颜色和填充色保持一致
        fill = True,
        fill_color = color_map(row["t/a"]),
        fill_opacity = 0.3
    ).add_to(map_points)

# 可选:把色阶图例添加到地图上
color_map.add_to(map_points)

map_points

补充说明

  • 把原来按索引遍历的写法改成了iterrows遍历,避免索引错位导致的取值错误
  • 你可以调整fill_opacity参数修改圆点透明度,调整colors列表自定义渐变效果
  • 代码里默认添加了色阶图例,不需要的话删掉最后color_map.add_to(map_points)即可

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.06 22:30:00