#heatmap熱度圖太抓,seaborn中常用的圖柳刮,也是我最喜歡畫的一種圖
#重要點(diǎn)思維:拿到一批數(shù)據(jù)一般會求特征之間的相關(guān)系數(shù)概页,可以用padas直接求出來相關(guān)系數(shù)害幅,放到heatmap元旬,可以很清楚的看到兩個特征的相關(guān)程度赃绊,這是一個固定的數(shù)據(jù)思維
#用途:比如拿到一批離散數(shù)據(jù)既峡,想看一下在哪個點(diǎn)值比較大,在哪個點(diǎn)值比較低碧查,你想把這樣一個值的變化运敢,用顏色來區(qū)分出來,這是我們要做的一個變化
import matplotlib.pyplot as plt
import numpy as np
np.random.seed(0)
import seaborn as sns
sns.set()
#顏色可以由淺到深忠售,可以由深到淺传惠,比如股票每天的漲跌
#
#隨機(jī)生成一個3*3矩陣,點(diǎn)heatmap穿進(jìn)去數(shù)據(jù)稻扬,調(diào)色板叫做col_bar,很明顯的看出這堆數(shù)中的值大小
uniform_data=np.random.rand(3,3)
heatmap=sns.heatmap(uniform_data)
#可以區(qū)間設(shè)置卦方,vmin vmax,大于或小于v的全是一個顏色泰佳,只有在這區(qū)間的才會分顏色
ax=sns.heatmap(uniform_data,vmin=0.2,vmax=0.5)
#比如拿到的數(shù)據(jù)是權(quán)重參數(shù)盼砍,又有正負(fù),正是漲逝她,負(fù)是跌浇坐,定義center=0,以0為中心畫這個數(shù)據(jù)
normal_data = np.random.randn(3, 3)
ax2 = sns.heatmap(normal_data, center=0)
#讀取航班數(shù)據(jù)集flights黔宛,seaborn自帶的近刘,1949年乘機(jī)的人數(shù)passengers
#需要橫軸表示年份,縱軸月份臀晃,點(diǎn)的值是大小
# 把當(dāng)前的數(shù)據(jù)轉(zhuǎn)換為可以用的矩陣格式觉渴,讀取的dataframe的,然后.pivot一下(x积仗,y疆拘,值)x和y直接寫列名即可,直接把dataframe中的year和month傳進(jìn)來寂曹,加一個注釋項annot=True哎迄,fmt=“d”即是在圖上顯示數(shù)據(jù)值回右,linwidth=.5加上一個格,這個圖會比較更清晰漱挚,調(diào)色板是cmap=“YIGnBu”翔烁,顏色,cbar=false是隱藏旨涝,但是一般不隱藏不然不知道圖例了
#默認(rèn)顏色太丑蹬屹,應(yīng)該設(shè)置一下常用的顏色
flights = sns.load_dataset('flights')
# print(flights.head())
flights=flights.pivot('month','year','passengers') #pivot函數(shù)重要
# print(flights.head())
sns.heatmap(flights) #注意這里是直接傳入數(shù)據(jù)集即可,不需要再單獨(dú)傳入x和y了
sns.heatmap(flights,linewidth=.5,annot=True,fmt='d')
#改變顏色
ax= sns.heatmap(flights,cbar=False,cmap='YlGnBu')