一. heatmap 语法介绍
seaborn.heatmap语法:
seaborn.heatmap(data, vmin=None, vmax=None, cmap=None, center=None, robust=False, annot=None, fmt='.2g', annotkws=None, linewidths=0, linecolor='white', cbar=True, cbarkws=None, cbar_ax=None, square=False, ax=None, xticklabels=True, yticklabels=True, mask=None, **kwargs)
-
data:矩阵数据集,可以使numpy的数组(array),如果是pandas的dataframe,则df的index/column信息会分别对应到heatmap的columns和rows
-
vmax,vmin, 图例中最大值和最小值的显示值,没有该参数时默认不显示
-
linewidths,热力图矩阵之间的间隔大小
-
cmap,热力图颜色
-
ax,绘制图的坐标轴,否则使用当前活动的坐标轴。
-
annot,annotate的缩写,annot默认为False,当annot为True时,在heatmap中每个方格写入数据。
-
annot_kws,当annot为True时,可设置各个参数,包括大小,颜色,加粗,斜体字等:
sns.heatmap(x, annot=True, ax=ax2, annot_kws={'size':9,'weight':'bold', 'color':'blue'}) -
fmt,格式设置,决定annot注释的数字格式,小数点后几位等;
-
cbar : 是否画一个颜色条
-
cbar_kws : 颜色条的参数,关键字同 fig.colorbar,可以参考:matplotlib自定义colorbar颜色条-以及matplotlib中的内置色条。
-
mask,遮罩
二. 实例
2.1 数据源介绍
flights.csv
每年每月份航班的乘客人数
2.2 实例演示
代码:
import matplotlib.pyplot as plt
import numpy as np;
import seaborn as sns;
import pandas as pd;
# 读取csv文件数据
flights = pd.read_csv("E:/file/flights.csv")
print (flights.head())
print ("########################################################")
flights = flights.pivot("month", "year", "passengers")
print (flights)
print ("########################################################")
# 图1: 普通的热力图
ax1 = sns.heatmap(flights)
# 图2: 热力图+数字
#ax2 = sns.heatmap(flights, annot=True,fmt="d")
# 图3: 颜色由深到浅
#ax3 = sns.heatmap(flights, linewidths=.5)
# 图4: 颜色由浅到深
#ax4 = sns.heatmap(flights, cmap="YlGnBu")
# 图5: cbar 是否画一个颜色条
#ax5 = sns.heatmap(flights, cbar=False)
plt.show()
测试记录:
图1: 普通的热力图
image.png
图2: 热力图+数字
image.png
图3: 颜色由深到浅
image.png
图4: 颜色由浅到深
image.png
图5: cbar 是否画一个颜色条
image.png
网友评论