"pythonic生物人"的第之前篇分享。
热力图(heatmap)可通过颜色深浅变化,优雅的展示数据的差异;本篇详细介绍python seaborn绘制热图(手把手讲解)。
本文您将学到什么?
1、matplotlib绘制热图
2、seaborn绘制热图
2.0 数据集准备
2.1 seaborn绘制heatmap 2.1.1 seaborn默认参数绘制hetmap2.1.2 colorbar(图例)范围修改:vmin、vmax2.1.3 修改热图颜色盘(colormap):cmp
使用matplotlib中colormap
使用Seaborn颜色盘
使用palettable库中颜色盘
3、seaborn.heatmap所有参数详解代码
正文开始啦
1、matplotlib绘制热图
matplotlib可通过以下两种方法绘制heamap;
- matplotlib.axes.Axes.imshow
- matplotlib.pyplot.imshow
原始效果图,挺丑陋的;改进后效果图(虽然要写很多辅助函数实现,但是可以很好的实现自定义热图,需要高度个性化的小伙伴可以去摸索);
2、seaborn绘制热图
seaborn在matplotlib的基础上封装了个seaborn.heatmap,非常傻瓜式操作,我等调包侠的福音,效果可以赶得上R语言了,不逼逼,下面上干货:
2.0 数据集准备
使用鸢尾花iris数据集,数据集详细介绍请戳:鸢尾花iris数据集;
import matplotlib.pyplot as pltimport numpy as npimport pandas as pdfrom pandas import Series,DataFrameimport seaborn as snsimport 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)']).reshape(25,6)#Series转np.array
df = pd.DataFrame(data1,
index=[chr(i) for i in range(65, 90)],#DataFrame的行标签设置为大写字母
columns=["a","b","c","d","e","f"])#设置DataFram