这个系列将深入探讨python的科学计算模块,今天我们来详细讲解seaborn模块的热力图功能。首先,我们将展示如何使用seaborn创建热力图,并提供相应的代码示例和解读。
Part 1:热力图示例
我们假设有一个数据框
df_1,包含4列数据,列名为
["p1", "p2", "p3", "p4"]。我们将使用这4列数据生成一个热力图,如下图所示:

Part 2:代码
立即学习“Python免费学习笔记(深入)”;
下面是生成上述热力图的完整代码:
import pandas as pd
import seaborn as sns
from matplotlib import pyplot as plt
dict_1 = {
"p1": [0.5, 0.8, 1.0, 1.2, 1.5, 2.5, 0.9, 0.6, 1.3, 1.0,
1.3, 1.6, 1.9, 2.5, 4.2, 3.5, 2.2, 1.2, 1.5, 0.5],
"p2": [1.3, 2.8, 1.3, 1.4, 6.5, 2.5, 0.9, 0.6, 1.3, 1.0,
1.3, 1.6, 1.9, 2.5, 4.2, 3.5, 1.2, 1.2, 3.5, 2.5],
"p3": [2.5, 0.8, 1.3, 1.2, 1.5, 2.8, 1.9, 0.6, 1.3, 1.1,
1.3, 1.6, 1.1, 2.5, 4.2, 3.9, 2.2, 1.2, 1.5, 0.5],
"p4": [2.5, 0.8, 1.3, 1.2, 1.5, 3.8, 1.9, 0.6, 1.3, 1.1,
1.3, 1.6, 1.1, 2.5, 4.2, 3.9, 2.2, 1.2, 1.5, 0.5]
}
df_1 = pd.DataFrame(dict_1, columns=["p1", "p2", "p3", "p4"])
print(df_1)
sns.set(style="ticks", color_codes=True)
sns.heatmap(df_1, linewidths=0.05, linecolor='yellow', vmin=0, vmax=5, annot=True)
plt.show()Part 3:部分代码解读
下面是代码中
sns.heatmap函数的参数解释:
sns.heatmap(df_1, linewidths=0.05, linecolor='yellow', vmin=0, vmax=5, annot=True)
linewidths
:设置每个单元格的线宽。linecolor
:设置单元格线框的颜色。vmin=0, vmax=5
:设置颜色区间的最小值和最大值。annot=True
:在每个单元格中显示具体的数值。
如果对生成的热力图颜色不满意,可以通过增加
cmap参数来更改颜色映射。例如:
sns.heatmap(df_1, linewidths=0.05, linecolor='yellow', vmin=0, vmax=5, annot=True, cmap="hot_r")
不同的
cmap参数会产生不同的颜色效果,如下图所示:
cmap="hot_r"效果图:

cmap="YlGnBu"效果图:











