【小睿的ML之路】Seaborn-热度图绘制

发布时间 2023-09-22 00:45:18作者: 郭小睿
%matplotlib inline 

import seaborn as sns # 导入 seaborn 库,用于绘制统计图形。
import numpy as np # 导入 numpy 库,用于处理数值计算。
import pandas as pd # 导入 pandas 库,用于处理数据。
import matplotlib as mpl # 导入 matplotlib 库,用于绘图。
import matplotlib.pyplot as plt # 导入 matplotlib 库中的 pyplot 模块,用于绘图。

sns.set()
unifrom_data = np.random.rand(3,3)
print(unifrom_data)
heatmap = sns.heatmap(unifrom_data)
[[0.86717326 0.88932738 0.19129649]
 [0.44762642 0.64610873 0.05775657]
 [0.48341926 0.85229855 0.6749416 ]]

ax = sns.heatmap(unifrom_data,vmin=0.2,vmax=0.5)

这段代码 ax = sns.heatmap(uniform_data, vmin=0.2, vmax=0.5) 使用 Seaborn 创建一个热力图。

参数解释:

  • uniform_data:这是热力图的输入数据。
  • vmin:该参数设置颜色刻度的最小值。低于这个值的数据将使用与 vmin 相同颜色表示。
  • vmax:该参数设置颜色刻度的最大值。高于这个值的数据将使用与 vmax 相同颜色表示。

简而言之,热力图会用颜色来表示 uniform_data 中的数据,颜色刻度范围从 vminvmax。小于 vmin 的值将用 vmin 处的颜色表示,大于 vmax 的值将用 vmax 处的颜色表示。

normal_data= np.random.randn(3,3)
print(normal_data)
sns.heatmap(normal_data,center=0)
[[ 0.73446471  1.13564014  1.1947376 ]
 [ 0.4645082   1.22539856  0.81175237]
 [ 2.31946206 -2.06534301  1.50228706]]





<Axes: >

这段代码 sns.heatmap(normal_data, center=0) 使用 Seaborn 创建热力图,并将颜色刻度的中心点设置为0。

参数解释:

  • normal_data:这是热力图的输入数据。
  • center=0:该参数设置颜色刻度的中心点。这意味着颜色刻度的中间颜色对应于数值为0的数据。

简而言之,热力图将以0为中心,使用颜色来表示 normal_data 中的数据,颜色刻度将围绕0展开。大于0的值将显示为一种颜色,小于0的值将显示为另一种颜色,0将是颜色刻度的中间点。

航班数据集

flights = sns.load_dataset("flights").dropna(axis=1)
flights.head()
year month passengers
0 1949 Jan 112
1 1949 Feb 118
2 1949 Mar 132
3 1949 Apr 129
4 1949 May 121
flights = flights.pivot("month","year","passengers")
print(flights)
ax = sns.heatmap(flights)
C:\Users\Administrator\AppData\Local\Temp\ipykernel_13624\680064224.py:1: FutureWarning: In a future version of pandas all arguments of DataFrame.pivot will be keyword-only.
  flights = flights.pivot("month","year","passengers")


year   1949  1950  1951  1952  1953  1954  1955  1956  1957  1958  1959  1960
month                                                                        
Jan     112   115   145   171   196   204   242   284   315   340   360   417
Feb     118   126   150   180   196   188   233   277   301   318   342   391
Mar     132   141   178   193   236   235   267   317   356   362   406   419
Apr     129   135   163   181   235   227   269   313   348   348   396   461
May     121   125   172   183   229   234   270   318   355   363   420   472
Jun     135   149   178   218   243   264   315   374   422   435   472   535
Jul     148   170   199   230   264   302   364   413   465   491   548   622
Aug     148   170   199   242   272   293   347   405   467   505   559   606
Sep     136   158   184   209   237   259   312   355   404   404   463   508
Oct     119   133   162   191   211   229   274   306   347   359   407   461
Nov     104   114   146   172   180   203   237   271   305   310   362   390
Dec     118   140   166   194   201   229   278   306   336   337   405   432

ax = sns.heatmap(flights,annot=True,fmt='d')

ax = sns.heatmap(flights,linewidths=5)

ax = sns.heatmap(flights,linewidths=5,cmap="YlGnBu")

ax = sns.heatmap(flights,linewidths=5,cmap="YlGnBu",cbar=False)