【小睿的ML之路】Seaborn-热度图绘制
%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
中的数据,颜色刻度范围从 vmin
到 vmax
。小于 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)