热力图(heatmap)可通过颜色深浅变化,优雅的展示数据的差异。
详细介绍python seaborn绘制热图
本文速览Matplotlib热图heatmapseaborn热图1seaborn热图2seaborn热图3
本文您将了解到什么?1、matplotlib绘制热图
2、seaborn绘制热图
2.0 数据集准备
2.1 seaborn绘制heatmap
2.1.1 seaborn默认参数绘制hetmap
2.1.2 colorbar(图例)范围修改:vmin、vmax
2.1.3 修改热图颜色盘(colormap):cmp
使用matplotlib中colormap
使用Seaborn颜色盘
使用palettable库中颜色盘
2.1.4 修改图例中心数据值大小:center
2.1.5 热图中文本开关:annot
2.1.6 格子中数据的格式化输出:fmt
2.1.7 格子中数据(字体大小、磅值、颜色)等设置:annot_kws
2.1.8 格子外框宽度、颜色设置:linewidths、linecolor
2.1.9 图例开关:cbar
2.1.10 图例位置、名称、标签等设置:cbar_kws
2.1.11 热图中只显示部分符合条件的数据:mask
2.1.12 自定义x轴、y轴标签:xticklabels、yticklabels
1、matplotlib绘制热图
matplotlib可通过以下两种方法绘制heamap;matplotlib.axes.Axes.imshow
matplotlib.pyplot.imshow
原始效果图,挺丑陋的;
改进后效果图(虽然要写很多辅助函数实现,但是可以很好的实现自定义热图,需要高度个性化的小伙伴可以去摸索);
2、seaborn绘制热图
seaborn在matplotlib的基础上封装了个seaborn.heatmap,非常傻瓜式操作,我等调包侠的福音,效果可以赶得上R语言了,不逼逼,下面上干货:
2.0 数据集准备
使用鸢尾花iris数据集,数据集详细介绍请戳:
import matplotlib.pyplot as plt
import numpy as np
import pandas as pd
from pandas import Series,DataFrame
import seaborn as sns
import palettable#python颜色库
from sklearn import datasets
plt.rcParams['font.sans-serif']=['SimHei'] # 用于显示中文
plt.rcParams['axes.unicode_minus'] = False # 用于显示中文
iris=datasets.load_iris()
x, y = iris.data, iris.target
pd_iris = pd.DataFrame(np.hstack((x, y.reshape(150, 1))),columns=['sepal length(cm)','sepal width(cm)','petal length(cm)','petal width(cm)','class'] )
plt.figure(dpi=200, figsize=(10,6))
data1 = np.array(pd_iris['sepal length(cm)']