Python实现热力图的参数详解与代码实例

山海之间
山海之间
发布时间:2026-10-15| 5人浏览过
原创

本文详细介绍Python中绘制热力图的常用方法与关键参数。涵盖Seaborn库中vmax、vmin、cmap等颜色映射配置,以及Gmplot在地图经纬度数据上的热力应用。通过完整代码示例,展示如何生成静态热力图与交互式HTML地图文件,帮助开发者快速掌握数据可视化技巧。

在分析多个变量间的相互关系时,热力图是一种直观的数据展示方式。这种可视化手段广泛应用于实际场景,例如地理空间数据的分布展示。许多开发者对如何高效绘制热力图感到困惑,本文将通过安装必要工具、解析核心参数以及提供具体代码实例,逐步演示热力图的实现过程。

导入必要的Python库


import seaborn as sns
%matplotlib inline
sns.set(font_scale=1.5)

关键参数说明

vmax:用于定义颜色映射的最大值,决定颜色条的上限。

vmin:用于定义颜色映射的最小值,决定颜色条的下限。

cmap:指定颜色映射表(colormap),如'viridis'或'hot',控制整体色调风格。

center:设置颜色映射的中心点,常用于对称数据的可视化,如相关系数矩阵。

annot:布尔值,若为True,则在每个单元格中显示具体数值注释。

fmt:字符串格式说明符,用于控制数值注释的显示格式(如小数位数)。

linewidths:浮点数,控制热力图中各个单元格网格线的宽度。

linecolor:字符串,设置网格分割线的颜色,默认为黑色。

cbar_kws:字典类型,用于自定义颜色条(colorbar)的属性,如标签、刻度等。

mask:布尔型矩阵,若对应位置为True,则该位置数据在热力图中被屏蔽不显示,常用于处理缺失值或相关系数矩阵的下三角部分。

代码实例演示

使用Python生成地图热力图相对简单,主要步骤包括导入gmplot库,将经纬度数据绘制到Google地图上,最后将热力图导出为HTML文件,支持用户进行放大和缩小交互操作。


import gmplot       # plot the locations on google map
import numpy as np    # linear algebra
import pandas as pd    # data processing, CSV file I/O (e.g. pd.read_csv())
import matplotlib.pyplot as plt # data visualization
import seaborn as sns    # data visualization
df = pd.read_csv("data.csv")
df = pd.DataFrame(df)
df_td = pd.read_csv("datacopy.csv")
df_td = pd.DataFrame(df_td)
# print df.dtypes
print (df.shape)
print (df_td.shape)
def plot_heat_map(data, number):
  latitude_array = data['INTPTLAT'].values
  latitude_list = latitude_array.tolist()
  print(latitude_list[0])
  Longitude_array = data['INTPTLONG'].values
  longitude_list = Longitude_array.tolist()
  print(longitude_list[0])
  # Initialize the map to the first location in the list
  gmap = gmplot.GoogleMapPlotter(latitude_list[0], longitude_list[0], 10)
  # gmap.scatter(latitude_list, longitude_list, edge_width=10)
  gmap.heatmap(latitude_list, longitude_list)
  # Write the map in an HTML file
  # gmap.draw('Paths_map.html')
  gmap.draw('{}_Paths_map.html'.format(number))
plot_heat_map(df,'4')

扩展阅读内容

扩展实例一


# -*- coding: utf-8 -*-
from pyheatmap.heatmap import HeatMap
import numpy as np
N = 10000
X = np.random.rand(N) * 255 # [0, 255]
Y = np.random.rand(N) * 255
data = []
for i in range(N):
 tmp = [int(X[i]), int(Y[i]), 1]
 data.append(tmp)
heat = HeatMap(data)
heat.clickmap(save_as="1.png") #点击图
heat.heatmap(save_as="2.png") #热图

扩展实例二


import matplotlib.pyplot as plt
import matplotlib.cm as cm
from matplotlib.colors import LogNorm
import numpy as np
x, y = np.random.rand(10), np.random.rand(10)
z = (np.random.rand(9000000)+np.linspace(0,1, 9000000)).reshape(3000, 3000)
plt.imshow(z+10, extent=(np.amin(x), np.amax(x), np.amin(y), np.amax(y)),
  cmap=cm.hot, norm=LogNorm())
plt.colorbar()
plt.show()

以上内容为Python热力图实现的基础指南,更多关于原理及高级应用的资料,建议参考本站其他相关文章。

相关标签:

免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。

Python 相关产品和应用

全部下载
Selenium

Selenium

4.51.0 · Windows

用于浏览器自动化和 Web 测试的 Python 工具。

scikit-learn

scikit-learn

1.9.1 · Windows

常用 Python 机器学习算法与模型评估工具库。

Black

Black

26.10.1 · Windows

强调一致性的 Python 自动代码格式化工具。

Ruff

Ruff

0.17.1 · macOS

由 Rust 编写的高速 Python 代码检查和格式化工具。

pytest

pytest

9.1.1 · Windows

简洁而强大的 Python 自动化测试框架。

FastAPI

FastAPI

0.146.0 · Windows

高性能 Python API 框架,支持类型提示和自动接口文档。

Flask

Flask

3.1.3 · Windows

轻量灵活的 Python Web 应用框架。

Django

Django

6.1.2 · Windows

成熟的 Python Web 框架,适合构建内容站点和业务系统。

Spyder

Spyder

6.1.7 · Windows

面向科学计算与数据分析的 Python 集成开发环境。

SciPy

SciPy

1.18.1 · Windows

面向科学、工程和技术计算的 Python 算法库。