Python matplotlib绘制热图实战:参数配置与配色方案详解

唐可
唐可
发布时间:2026-10-13| 6人浏览过
原创

本文介绍如何使用Python的matplotlib库绘制二维数据热图。通过随机生成5x5矩阵示例,演示了坐标轴设置、颜色映射参数cmap(如hot_r)对数值与颜色深浅对应关系的影响,以及colorbar颜色刻度条的添加方法,帮助开发者快速掌握热图可视化的核心技巧。

在Python生态中,matplotlib是最为常用的绘图库之一。近期在进行公司内部数据可视化工作时,意外发现利用matplotlib绘制热图不仅效果直观,而且代码实现非常简洁。鉴于涉及商业数据保密,此处将使用随机生成的模拟数据进行演示与分享。

import random
from matplotlib import pyplot as plt
from matplotlib import cm
from matplotlib import axes
from matplotlib.font_manager import FontProperties
font = FontProperties(fname='/Library/Fonts/Songti.ttc')
 
def draw():
 #定义热图的横纵坐标
 xLabel = ['A','B','C','D','E']
 yLabel = ['1','2','3','4','5']
 
 #准备数据阶段,利用random生成二维数据(5*5)
 data = []
 for i in range(5):
  temp = []
  for j in range(5):
   k = random.randint(0,100)
   temp.append(k)
  data.append(temp)
 
 #作图阶段
 fig = plt.figure()
 #定义画布为1*1个划分,并在第1个位置上进行作图
 ax = fig.add_subplot(111)
 #定义横纵坐标的刻度
 ax.set_yticks(range(len(yLabel)))
 ax.set_yticklabels(yLabel, fontproperties=font)
 ax.set_xticks(range(len(xLabel)))
 ax.set_xticklabels(xLabel)
 #作图并选择热图的颜色填充风格,这里选择hot
 im = ax.imshow(data, cmap=plt.cm.hot_r)
 #增加右侧的颜色刻度条
 plt.colorbar(im)
 #增加标题
 plt.title("This is a title", fontproperties=font)
 #show
 plt.show()
 
d = draw()

最终生成的热图效果如下图所示:

为了更直观地展示二维数值矩阵与生成的热图之间的映射关系,我们将对应的二维矩阵数据打印输出如下:

[[17, 96, 11, 99, 83], [18, 17, 58, 18, 80], [87, 79, 15, 53, 4], [86, 53, 48, 36, 23], [25, 4, 94, 100, 71]]

通过对比上述矩阵与图像,可以观察到图像的左上角对应坐标原点,且矩阵的第一行数据对应热图的第一行,后续行以此类推。同时可见,矩阵中数值越大的单元格,在热图中显示的颜色越深。这一行为可通过修改代码中的cmap参数来调整,例如将im = ax.imshow(data, cmap=plt.cm.hot_r)中的cmap设为hot_r,其中后缀_r表示颜色随数值增大而变深;若希望数值越大颜色越浅,则直接使用hot即可。hot是热图配色主题之一,其他可选的主题色参数包括:

  • hot:颜色从黑色平滑过渡到红色、橙色和黄色背景,最后渐变为白色。
  • cool:包含青绿色和品红色的阴影色调,从青绿色平滑变化至品红色。
  • gray:返回线性的灰度色图。
  • bone:一种带有较高蓝色成分的灰度色图,常用于给灰度图添加电子视图效果。
  • white:全白色的单色色图。
  • spring:包含品红和黄色的阴影颜色。
  • summer:包含绿色和黄色的阴影颜色。
  • autumn:颜色从红色平滑变化到橙色,再过渡到黄色。
  • winter:包含蓝色和绿色的阴影色调。

此外,右侧的颜色刻度条(colorbar)也是可选配置,若代码中未添加相关语句,则不会显示该刻度条。

以上内容即为本次关于Python matplotlib绘制热图的完整分享,希望能对读者的学习有所帮助,也欢迎大家继续支持本站获取更多技术内容。

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

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 算法库。