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

求助:Folium HeatMapWithTime生成的HTML文件显示空白

HeatMapWithTime生成空白HTML的解决办法

你的代码核心问题是传给HeatMapWithTime的data格式不符合要求,同时底图缩放级别太小,导致看不到模拟的小范围点位。以下是修正方案:

关键问题说明

HeatMapWithTime要求的数据结构是按时间节点分组的坐标列表:每个元素对应某一时刻的所有点位,格式为[[[lat1,lng1], [lat2,lng2]], [[lat3,lng3], ...]],而不是把每条数据的纬度、经度、时间放在同一个子列表里。

修正后的代码

import folium
import pandas as pd
import numpy as np
from folium.plugins import HeatMapWithTime

# 生成模拟数据
latitudes = np.random.uniform(low=45.523, high=45.524, size=50)
longitudes = np.random.uniform(low=-122.675, high=-122.676, size=50)
times = np.sort(np.random.uniform(low=1580000000, high=1600000000, size=50))
data = {'latitude': latitudes, 'longitude': longitudes, 'time': times}

df = pd.DataFrame(data)
df['time'] = pd.to_datetime(df['time'], unit='s')

# 1. 按时间分组,整理成HeatMapWithTime需要的格式
df['time_str'] = df['time'].dt.strftime("%Y-%m-%d %H:%M:%S")
heat_data = []
for _, group in df.groupby('time_str'):
    heat_data.append(group[['latitude', 'longitude']].values.tolist())
time_index = df['time_str'].unique().tolist()

# 2. 调大底图缩放级别,适配小范围模拟数据
m = folium.Map(location=[45.523, -122.675], zoom_start=18)

# 添加时间轴热力图
HeatMapWithTime(
    data=heat_data,
    index=time_index,
    auto_play=True,
    max_opacity=0.8
).add_to(m)

# 保存HTML
m.save("heatmap_with_timeline.html")

额外检查建议

  • 打开HTML时按F12调出开发者工具,查看Console面板的报错信息,能快速定位渲染问题
  • 避免用map作为变量名,它是Python内置函数,虽不报错但不符合编码规范

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.02 12:40:20