当前位置:首页>python>Python编程小技巧--‌热力图

Python编程小技巧--‌热力图

  • 2026-10-21 13:28:37
Python编程小技巧--‌热力图
热力图是用颜色深浅来直观展示数据分布的工具,特别适合一眼看出哪些区域数据密集或异常。
比如用它展示销售数据,颜色越深代表销量越高,能立刻看出热门区域,或者显示不同股票在不同时间段的价格波动,颜色越深代表波动越大等 。
用Python画热力图非常方便,比如我们查看多个变量之间的相关性强弱,代码如下(可直接运行,展示结果见上图)
import matplotlib.pyplot as pltimport numpy as np# 示例:3个变量的随机数据np.random.seed(0)X = np.random.randn(100, 3)# 计算相关系数矩阵corr = np.corrcoef(X, rowvar=False)  # shape (3,3)# 画热力图plt.imshow(corr, cmap='RdBu', vmin=-1, vmax=1)plt.colorbar()plt.title("相关性热力图")# 添加文本标注for i in range(corr.shape[0]):    for j in range(corr.shape[1]):        plt.text(j, i, f"{corr[i, j]:.2f}",                  ha="center", va="center", color="white")plt.xticks(range(3), ['Var1', 'Var2', 'Var3'])plt.yticks(range(3), ['Var1', 'Var2', 'Var3'])plt.show()
其核心原理在于
plt.imshow(corr, cmap='RdBu', vmin=-1, vmax=1)
  • plt.imshow():将二维数组以图像形式显示(热力图常用)。
  • cmap='RdBu':使用红-蓝(Red-Blue)色谱:
    • 红色 → 正相关(接近 +1)
    • 蓝色 → 负相关(接近 -1)
    • 白色/浅色 → 接近 0
  • vmin=-1, vmax=1:手动设置颜色映射范围,确保 -1 到 1 对应完整的色谱(否则会自动缩放,影响解读)。
最后通过下面语句添加颜色条即大功告成
plt.colorbar()
再看下面这个例子,是不是有点类似 GitHub 贡献日历的活跃度热力图呢(需要这个源码的小伙伴们可以评论区留言或者私信~)

推荐合集

推荐文章

最新文章

随机文章