京公网安备 11010802034615号
经营许可证编号:京B2-20210330
在城市规划、物流配送、文旅分析等场景中,经纬度热力图是解读空间数据的核心工具——它能将零散的GPS坐标(如外卖订单地址、景区打卡点、车辆定位)转化为色彩渐变的密度分布图,直观呈现“哪里是热点、哪里是冷区”。小到门店选址的客群密度分析,大到城市交通流量的宏观研判,经纬度热力图都能让空间规律从抽象的坐标数字中显现。本文将从核心原理、准备工作、主流生成方法到实战优化,完整拆解经纬度热力图的生成逻辑。
经纬度热力图并非简单的“点的叠加”,而是基于核密度估计(Kernel Density Estimation,KDE) 的空间插值技术。其核心逻辑是:将每个经纬度点视为“能量源”,以该点为中心向周边扩散形成密度值,所有点的密度值叠加后,用颜色深浅(或亮度)表示区域内的点密度——颜色越深,代表该区域经纬度点的分布越密集。
设数据集包含n个经纬度点,坐标为 ( 为经度, 为纬度, ),则空间中任意位置 的核密度值 计算公式为:
其中关键参数说明:
:核函数(常用高斯核、矩形核、Epanechnikov核),决定“密度扩散”的形状,高斯核因平滑性好成为热力图首选,公式为 ;
:带宽(Bandwidth),即“扩散半径”—— 越大,热力图越平滑(细节模糊); 越小,热力图越精细(易出现噪点),是影响热力图效果的核心参数。
连续型可视化:将离散的坐标点转化为连续的密度面,弥补“点分布稀疏区域”的信息空白;
坐标依赖性:需基于统一的地理坐标系(如WGS84、GCJ02),否则会出现位置偏移;
经纬度热力图的生成效果,70%取决于数据预处理和工具选型。在动手生成前,需完成三大核心准备:
核心字段需包含:经度(longitude)、纬度(latitude),可选字段(如订单量、人流量)可作为“权重”(加权热力图)。常见数据格式为CSV、Excel、JSON,示例如下:
| 经度 | 纬度 | 订单量 | 区域 |
|---|---|---|---|
| 116.404 | 39.915 | 120 | 北京东城区 |
| 116.418 | 39.920 | 85 | 北京西城区 |
坐标校验:剔除超出合理范围的异常值(如经度不在 、纬度不在 的国内坐标);
去重:删除重复的经纬度点(如同一用户多次定位的重复记录);
坐标系转换:统一坐标体系——
不同场景下的工具选择差异显著,核心工具可分为三类:
| 工具类型 | 代表工具 | 适用场景 | 核心优势 |
|---|---|---|---|
| 代码开发类 | Python(Folium/Matplotlib) | 定制化需求高、需批量生成/自动化 | 灵活性强、可自定义核函数/带宽 |
| 可视化工具类 | Tableau/Power BI | 非技术人员、快速生成交互式热力图 | 零代码、操作简单、支持一键导出 |
| 地图API类 | 高德/百度/腾讯地图API | 嵌入网页/APP、需在线交互 | 底图丰富、支持移动端适配 |
Python是经纬度热力图的主流开发工具,核心库包括:
步骤1:环境安装
pip install folium pandas numpy
步骤2:核心代码(以北京外卖订单数据为例)
import folium
from folium.plugins import HeatMap
import pandas as pd
# 1. 读取经纬度数据(CSV格式)
df = pd.read_csv("beijing_order.csv")
# 数据清洗:剔除异常坐标
df = df[(df['经度'] >= 116) & (df['经度'] <= 117) & (df['纬度'] >= 39.5) & (df['纬度'] <= 40.5)]
# 提取经纬度+权重(订单量),格式为[[纬度1, 经度1, 权重1], [纬度2, 经度2, 权重2]]
heat_data = [[row['纬度'], row['经度'], row['订单量']] for index, row in df.iterrows()]
# 2. 初始化地图(中心点为北京天安门,缩放级别12)
m = folium.Map(location=[39.9042, 116.4074], zoom_start=12, tiles='OpenStreetMap')
# 3. 添加热力图层
HeatMap(
heat_data,
min_opacity=0.2, # 最小透明度
max_val=df['订单量'].max(), # 最大权重值
radius=15, # 扩散半径(对应核密度带宽h)
blur=10, # 模糊程度
gradient={0.2: 'blue', 0.4: 'green', 0.6: 'yellow', 0.8: 'orange', 1: 'red'} # 颜色渐变
).add_to(m)
# 4. 保存为HTML文件(可直接在浏览器打开)
m.save("beijing_order_heatmap.html")
代码关键参数解读:
radius:对应核密度估计的带宽 ,值越大热点越分散,建议根据数据密度调整(城市级数据取10-20,区县级取5-10);
gradient:颜色映射规则,需遵循“冷色(蓝)→暖色(红)”的视觉习惯,避免颜色跳跃;
max_val:权重最大值,决定颜色渐变的基准,若不设置会自动以数据最大值为基准。
适合非技术人员快速生成热力图,无需编写代码,步骤如下:
将包含经纬度的CSV/Excel文件导入Tableau,Tableau会自动识别“经度”“纬度”字段为地理角色。
支持导出为PNG/PDF,或发布至Tableau Server实现在线交互,适合业务汇报场景。
若需将热力图嵌入自有网页或APP,可使用高德/百度地图API,以高德地图为例:
登录高德开放平台,创建应用并获取Web端API Key。
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>高德地图热力图</title>
<!-- 引入高德地图JS API -->
<script type="text/javascript" src="https://webapi.amap.com/maps?v=2.0&key=你的API Key"></script>
<!-- 引入热力图插件 -->
<script type="text/javascript" src="https://webapi.amap.com/plugins/AMap.HeatMap.js"></script>
<style>
#map {width: 1000px; height: 600px;}
</style>
</head>
<body>
<div id="map"></div>
<script type="text/javascript">
// 1. 初始化地图
var map = new AMap.Map('map', {
center: [116.404, 39.915], // 北京中心点
zoom: 12
});
// 2. 经纬度数据(格式:[经度, 纬度, 权重])
var heatData = [
[116.404, 39.915, 120],
[116.418, 39.920, 85],
[116.425, 39.930, 95]
];
// 3. 创建热力图
var heatmap = new AMap.HeatMap(map, {
data: heatData,
radius: 20, // 扩散半径
opacity: [0.2, 0.8], // 透明度范围
gradient: { // 颜色渐变
0.2: 'blue',
0.4: 'green',
0.6: 'yellow',
0.8: 'orange',
1.0: 'red'
}
});
</script>
</body>
</html>
生成基础热力图后,需通过优化提升可读性,核心技巧如下:
样本量小(<1000个点):减小radius(5-10),避免热点过度扩散;
样本量大(>10000个点):增大radius(15-25),突出宏观热点;
分层展示:对核心城区和郊区采用不同带宽,避免郊区稀疏点掩盖城区热点。
避免使用高对比度颜色(如红→绿),防止视觉疲劳;
为色盲人群适配:采用“亮度渐变”而非“色相渐变”,如浅蓝→深蓝;
标注关键阈值:在热力图旁添加色阶标尺,标注“50单/平方公里”“100单/平方公里”等数值,避免仅靠颜色判断。
用行政边界(如区县轮廓)裁剪热力图,剔除区域外的无效密度值;
Python中可通过Geopandas加载SHP边界文件,限制热力图绘制范围:
import geopandas as gpd
# 加载北京东城区边界SHP文件
boundary = gpd.read_file("dongcheng.shp")
# 仅绘制边界内的热力图
heatmap = HeatMap(heat_data).add_to(m)
folium.GeoJson(boundary).add_to(m)
若经纬度点有不同权重(如订单量、人流量),需将权重纳入核密度计算,避免“单点多量”被误判为“多点少量”;
Python中Folium的HeatMap已原生支持权重参数,只需在数据中加入第三列即可。
分析某城市共享单车停放点的密度分布,识别“停车热点”和“停车缺口”,为共享单车投放提供依据。
数据准备:获取3万条共享单车停放经纬度数据(含停放次数权重);
生成热力图:用Folium设置radius=10,gradient为蓝→黄→红,叠加城市行政区边界;
结果解读:
热点区域:地铁口、商圈(颜色红),停放次数超200次/天,需增加投放;
冷区:老旧小区(颜色蓝),停放次数不足50次/天,需减少投放;
决策落地:基于热力图调整投放策略,热点区域增加20%车辆,冷区减少15%车辆。
解决方案:通过API(如高德坐标转换接口)将WGS84转为BD09/GCJ02,转换公式示例:
# WGS84转GCJ02核心公式(简化版)
def wgs2gcj(lng, lat):
# 详细转换系数需参考国测局标准
delta_lng = 0.0065 + 0.002*lat - 0.001*lng
delta_lat = 0.006 + 0.001*lng - 0.002*lat
return lng + delta_lng, lat + delta_lat
问题:热力图呈现大量孤立红点,无明显连续热点;
解决方案:增大radius值,或对数据进行降采样(如按100米网格聚合经纬度点)。
问题:部分点权重过大(如某点订单量1000,其余点不足100),导致热力图仅显示该点;
解决方案:对权重进行归一化(如缩放到0-1),公式:
经纬度热力图的核心价值,不在于“生成一张好看的图”,而在于“将离散的空间数据转化为可落地的决策依据”。无论是Python的定制化开发、Tableau的快速可视化,还是地图API的在线嵌入,选择方法的核心是匹配场景需求——技术人员追求灵活性,业务人员追求效率,产品人员追求交互性。
从核密度估计的公式推导,到实战中的参数调优,经纬度热力图的生成过程是“数据→模型→可视化→决策”的完整闭环。掌握这些方法,能让空间数据从“冰冷的坐标数字”变为“直观的业务洞察”,真正发挥地理数据的价值。

数据分析咨询请扫描二维码
若不方便扫码,搜微信号:CDAshujufenxi
随着大数据技术的快速发展,商业竞争逐步从传统的经验式经营转变为数据驱动的精细化运营。海量的用户行为数据、交易数据、运营数 ...
2026-09-04CDA数据分析师 出品 作者:李诗怡 1. 波士顿矩阵(BCG Matrix) 定义: BCG于1970年提出的业务组合分析工具,以"市场增长率"(纵 ...
2026-09-04 数据分析师八成以上的时间在和数据表格打交道,但许多人拿到Excel后习惯性地先算、先分析,结果回头发现漏了一列关键数据, ...
2026-09-04数据透视表是Excel与Power BI中最核心的数据分析工具,具备快速汇总、维度拆分、动态筛选的能力,可高效完成数据归类与统计展示 ...
2026-09-03在Power BI数据分析可视化场景中,堆积柱状图+折线图是最常用的复合图表组合。堆积柱状图适合展示各细分维度当期数值、结构占比 ...
2026-09-03 很多数据分析师每天与Excel打交道,但当被问到“表格结构数据的基本处理单位是什么”“数据类型误判会引发哪些分析错误”“ ...
2026-09-03CDA数据分析师 出品 作者:李诗怡 一、8个核心数据清洗函数 1. TRIM:一键清除多余空格(最常用) 作用:仅保留文本中"单词/字 ...
2026-09-02数据分析的核心并非单纯操作工具、整理报表或绘制图表,而是依靠科学的思维逻辑挖掘数据价值、解释业务现象、指导经营决策。在完 ...
2026-09-02在社会经济、产业研究、区域治理与大数据实证分析中,面板数据是最具研究价值的数据类型。面板数据同时包含截面维度与时间维度信 ...
2026-09-02 很多数据分析师能熟练计算均值、标准差,但当被问到“如何用一张图让业务方3秒内看懂核心结论”“面对不同数据类型该怎么选 ...
2026-09-02在数据驱动决策的体系中,数据分析按照分析目的可分为描述性分析、诊断性分析、预测性分析与指导性分析四大类型。其中,诊断性分 ...
2026-09-01网络请求是Python爬虫开发、接口测试、数据拉取的核心基础功能,Python生态中主要依靠 urllib 和 requests 两大库实现HTTP请求操 ...
2026-09-01 很多数据分析师面对业务问题时,常常感到“知道要分析,却不知道用什么方法”。其实,数据分析并非无章可循——从三大基础范 ...
2026-09-01在数据库设计与业务数据维护中,自增ID是数据表最常用的主键字段,用于唯一标识每一条业务数据,正常状态下ID应保持连续递增。但 ...
2026-08-31在数理统计、数据分析、经济测算与日常量化评估中,平均值是刻画数据集中趋势、反映整体水平的基础核心指标。在实际应用中,最常 ...
2026-08-31在数据驱动的时代,数据分析早已不是“凭经验、靠感觉”的零散操作,而是一套具备固定逻辑、标准化流程的系统方法——这就是数据 ...
2026-08-31在大数据时代背景下,海量行业数据亟需通过专业化工具挖掘潜在价值,辅助企业业务决策、优化运营模式、规避经营风险。Python凭借 ...
2026-08-28SQL是数据分析领域最基础、最核心的工具,承担着取数、清洗、统计、分层、归因的全流程工作。不同于单纯的语法练习,实战化SQL数 ...
2026-08-28 很多企业团队并非缺乏指标,而是陷入“指标失控”:仪表盘上堆满实时跳动的数据,却无法回答“当前瓶颈在哪、下一步该做什么 ...
2026-08-28随着新零售模式的快速普及,零售行业从传统的“货品驱动”全面转向“用户驱动”。门店交易数据、线上消费记录、浏览轨迹、复购频 ...
2026-08-27