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

Python绘制热力图求助:基于坐标点停留时间数据

Hey there! Let's tackle your stay-time heatmap problem properly. I see you've started coding based on Jurgy's answer, so let's build out that solution to fit your large dataset of x/y coordinates paired with stay time.

坐标停留时间热力图绘制方案

1. 环境与数据预处理

首先,先修正代码里的导入问题(新版本Scipy已经调整了模块结构),再确保数据能正确加载:

import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
import matplotlib.cm as cm
from scipy.ndimage import gaussian_filter  # 替代旧的scipy.ndimage.filters
from matplotlib.colors import LogNorm  # 应对停留时间差异过大的情况

# 加载你的数据(假设是CSV格式,替换成实际读取逻辑)
df = pd.read_csv("your_dataset.csv")
x_coords = df['x'].values
y_coords = df['y'].values
stay_times = df['stay_time'].values

2. 构建热力网格与密度统计

大数量数据需要先映射到网格,统计每个网格内的总停留时间,再做平滑处理:

# 定义网格参数,可根据坐标范围调整
x_min, x_max = x_coords.min(), x_coords.max()
y_min, y_max = y_coords.min(), y_coords.max()
grid_resolution = 100  # 网格精细度,数值越大细节越多

# 创建网格坐标系
xi, yi = np.meshgrid(
    np.linspace(x_min, x_max, grid_resolution),
    np.linspace(y_min, y_max, grid_resolution)
)

# 统计每个网格的总停留时间(用weights参数传递停留时间)
heatmap, _, _ = np.histogram2d(
    x_coords, y_coords,
    bins=grid_resolution,
    weights=stay_times
)

# 高斯平滑让热力过渡更自然
heatmap = gaussian_filter(heatmap, sigma=2)  # sigma控制平滑程度,按需调整

3. 绘制并优化热力图

最后可视化,根据数据特性调整显示效果:

plt.figure(figsize=(10, 8))

# 绘制热力图,用对数归一化放大小停留时间的差异
im = plt.imshow(
    heatmap.T,
    extent=[x_min, x_max, y_min, y_max],
    origin='lower',
    cmap=cm.jet,
    norm=LogNorm()  # 不需要的话可删除,用默认线性归一化
)

# 添加辅助元素
plt.colorbar(im, label='Total Stay Time')
plt.xlabel('X Coordinate')
plt.ylabel('Y Coordinate')
plt.title('Spatial Stay Time Heatmap')

plt.show()

关键优化提示

  • 如果坐标范围极大,先对x/y做归一化处理,或调大grid_resolution避免热力稀疏
  • sigma参数要适配数据密度:数据越密集,sigma可以越小;稀疏数据调大sigma让热力更连贯
  • 若停留时间没有0值或差异不大,可去掉LogNorm参数,用默认的线性颜色映射

如果运行中遇到具体报错(比如数据格式异常、显示模糊),把错误信息贴出来,我再帮你针对性调整!

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.22 10:01:25