Matplotlib 热力图

Matplotlib 热力图函数

热力图,指的是以高亮的方式来显示区域的密度情况,以展示数据的差异性。在 Matplotlib 中,我们可以使用 imshow() 函数来绘制一个热力图。

语法:

plt.imshow(x)

说明:

x 用于定义热力图的数据部分,它是一个二维数据,比如二维列表二维数组或 DataFrame。

示例 1:Matplotlib 绘制热力图

import matplotlib.pyplot as plt

# 绘图
x = [[1, 2], [3, 4], [5, 6]]
plt.imshow(x)
plt.colorbar()

# 显示
plt.show()

运行之后,效果如下图所示。

Matplotlib绘制热力图

分析:

data 是一个 2 × 3 的二维列表,所以它绘制出来的热力图也是 2 × 3 的方块图。其中最顶部 2 个方块是 [1, 2],中间的 2 个方块是 [3, 4],底部的 2 个方块是 [5, 6]。然后 1 的颜色最深,6 的颜色最浅。

Matplotlib 热力图样式

对于热力图来说,我们可以使用 cmap 参数来定义热力图的颜色,它的常用取值如下表所示。

cmap 参数的取值
取值 效果
plt.cm.gray 黑 → 灰 → 白
plt.cm.bone 黑 → 蓝灰 → 白
plt.cm.hot 黑 → 红 → 白
plt.cm.cool 青绿 → 浅蓝 → 品红
plt.cm.spring 品红 → 橙黄 → 黄色
plt.cm.summer 深绿 → 浅绿 → 黄色
plt.cm.autumn 红 → 橙 → 黄
plt.cm.winter 蓝 → 青蓝 → 绿

示例 2:热力图颜色

import matplotlib.pyplot as plt

# 绘图
data = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
plt.imshow(data, cmap=plt.cm.spring)
plt.colorbar()

# 显示
plt.show()

运行之后,效果如下图所示。

Matplotlib热力图颜色

示例 3:颜色条的长宽

import matplotlib.pyplot as plt

# 绘图
data = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
plt.imshow(data, cmap=plt.cm.spring)
plt.colorbar(shrink=0.5)

# 显示
plt.show()

运行之后,效果如下图所示。

Matplotlib颜色条长度

分析:

colorbar() 函数可以使用 shrink 参数来定义颜色条的长宽,shrink=0.5 表示定义颜色条长宽为默认长宽的一半。

最后需要说明的是,Matplotlib 提供的热力图能力有限,使用起来也比较麻烦。在实际开发中,我们更推荐使用后面介绍的 Seaborn 来实现热力图。

上一篇: Matplotlib 雷达图

下一篇: Matplotlib 子图

给站长反馈

绿叶网正在不断完善中,小伙伴们如果发现任何问题,还望多多给站长反馈,谢谢!

邮箱:lvyenet@vip.qq.com

「绿叶网」服务号
绿叶网服务号放大
关注服务号,微信也能看教程。
绿叶网服务号