Python可视化:使用Seaborn绘制相关系数热力图

本文将介绍如何使用Python的Seaborn库绘制变量相关系数热力图。

import matplotlib.pyplot as plt
import seaborn as sns

# 假设corr为相关系数矩阵

plt.subplots(figsize=(9, 9))    # 设置画面大小
plt.rcParams['font.sans-serif'] = ['FangSong']   # 指定默认字体
plt.rcParams['axes.unicode_minus'] = False     # 解决保存图像是负号'-'显示为方块的问题,负号正常显示
plt.title('变量相关系数 - 热图\n', fontsize=18)   # 添加图表标题“变量相关系数 - 热图”,fontsize=18 字体大小 可省略

# annot=True,是显式热力图上的数值;vmax是显示最大值;xticklabels、yticklabels轴标签显示;square=True,将图变成一个正方形,默认是一个矩形;cmap="YlGnBu"是一种模式,就是图颜色配置。
# mask:控制某个矩阵块是否显示出来,默认值是None,如果是布尔型的DataFrame,则将DataFrame里True的位置用白色覆盖掉

sns.heatmap(corr, annot=True, vmax=1, vmin=0, xticklabels=True, yticklabels=True, square=True, cmap="YlGnBu",
            linewidths=0.05, linecolor='white')    # mask=t < 0.8等价于mask=(t < 0.8)
plt.show()

代码解释

  1. plt.subplots(figsize=(9, 9)):创建一个新的图表,并设置图表的大小为9x9。
  2. plt.rcParams['font.sans-serif'] = ['FangSong']:设置默认字体为仿宋。
  3. plt.rcParams['axes.unicode_minus'] = False:解决保存图像时负号显示为方块的问题。
  4. plt.title('变量相关系数 - 热图\n', fontsize=18):设置图表的标题为“变量相关系数 - 热图”,字体大小为18。
  5. sns.heatmap(corr, annot=True, vmax=1, vmin=0, xticklabels=True, yticklabels=True, square=True, cmap="YlGnBu", linewidths=0.05, linecolor='white'):绘制热力图,其中corr为相关系数矩阵,annot=True表示在热力图上显示数值,vmax=1vmin=0分别设置最大值和最小值,xticklabels=Trueyticklabels=True表示显示x轴和y轴的标签,square=True表示将图表变为正方形,cmap="YlGnBu"设置颜色为黄绿蓝色渐变,linewidths=0.05设置格子之间的线宽为0.05,linecolor='white'设置线的颜色为白色。
  6. plt.show():显示图表。

修改颜色

如果要修改颜色,可以修改cmap参数的值,可以选择其他的颜色映射。常见的颜色映射包括“Blues”、“Greens”、“Reds”等,也可以使用自定义的颜色映射。例如,将cmap="YlGnBu"改为cmap="Blues",即可将颜色改为蓝色渐变。

其他可视化技巧

  • 可以使用mask参数来控制某个矩阵块是否显示出来。例如,如果想要隐藏相关系数小于0.8的块,可以使用mask=(corr < 0.8)
  • 可以使用cbar参数来控制颜色条的显示位置和方向。
  • 可以使用annot_kws参数来调整热力图上数值的显示样式,例如字体大小、颜色、对齐方式等。

希望这篇文章对您有所帮助。如果您有任何问题,请随时留言。

Python可视化:使用Seaborn绘制相关系数热力图

原文地址: https://www.cveoy.top/t/topic/fN1p 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录