heatmap学习笔记

来源:互联网 发布:网络网线接那几根线 编辑:程序博客网 时间:2024/05/18 22:46

#heatmap热度图,seaborn中常用的图,也是我最喜欢画的一种图
#重要点思维:拿到一批数据一般会求特征之间的相关系数,可以用padas直接求出来相关系数,放到heatmap,可以很清楚的看到两个特征的相关程度,这是一个固定的数据思维
#用途:比如拿到一批离散数据,想看一下在哪个点值比较大,在哪个点值比较低,你想把这样一个值的变化,用颜色来区分出来,这是我们要做的一个变化

importmatplotlib.pyplotas plt
importnumpyas np
np.random.seed(0)
importseabornas sns
sns.set()
#颜色可以由浅到深,可以由深到浅,比如股票每天的涨跌
#
#随机生成一个3*3矩阵,点heatmap穿进去数据,调色板叫做col_bar,很明显的看出这堆数中的值大小
uniform_data=np.random.rand(3,3)
heatmap=sns.heatmap(uniform_data)

#可以区间设置,vmin vmax,大于或小于v的全是一个颜色,只有在这区间的才会分颜色
ax=sns.heatmap(uniform_data,vmin=0.2,vmax=0.5)

#比如拿到的数据是权重参数,又有正负,正是涨,负是跌,定义center=0,以0为中心画这个数据
normal_data = np.random.randn(3,3)
ax2 = sns.heatmap(normal_data,center=0)


#读取航班数据集flightsseaborn自带的,1949年乘机的人数passengers
#需要横轴表示年份,纵轴月份,点的值是大小
#把当前的数据转换为可以用的矩阵格式,读取的dataframe的,然后.pivot一下(xy,值)xy直接写列名即可,直接把dataframe中的yearmonth传进来,加一个注释项annot=Truefmt=“d”即是在图上显示数据值,linwidth=.5加上一个格,这个图会比较更清晰,调色板是cmap=“YIGnBu”,颜色,cbar=false是隐藏,但是一般不隐藏不然不知道图例了
#默认颜色太丑,应该设置一下常用的颜色

flights = sns.load_dataset('flights')
# print(flights.head())
flights=flights.pivot('month','year','passengers')#pivot函数重要
# print(flights.head())
sns.heatmap(flights)#注意这里是直接传入数据集即可,不需要再单独传入xy

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

#改变颜色
ax= sns.heatmap(flights,cbar=False,cmap='YlGnBu')


原创粉丝点击