1.熱力圖heatmap
seaborn.heatmap(data, vmin=None, vmax=None, cmap=None, center=None, robust=False, annot=None, fmt='.2g', annot_kws=None, linewidths=0, linecolor='white', cbar=True, cbar_kws=None, cbar_ax=None, square=False, xticklabels='auto', yticklabels='auto', mask=None, ax=None, **kwargs)
方法:用顏色矩陣去顯示數據在兩個維度下的度量值
參數:
- data : 要顯示的數據
ax = sns.heatmap(data)
- vmin, vmax : 顯示的數據值的最大和最小的范圍
ax = sns.heatmap(data,vmin=0, vmax=1)
- cmap : matplotlib顏色表名稱或對象,或顏色列表,可選從數據值到色彩空間的映射。如果沒有提供,默認設置
ax = sns.heatmap(data,vmin=0, vmax=1, cmap = 'GnBu')
- center : 指定色彩的中心值
ax = sns.heatmap(data,vmin=0, vmax=1, cmap = 'GnBu', center=0.7)
- robust : 如果“Ture”和“ vmin或” vmax不存在,則使用強分位數計算顏色映射范圍,而不是極值。
ax = sns.heatmap(data,vmin=0, vmax=1, cmap = 'GnBu', center=0.5, robust=False) #Set1
- annot : 如果為True,則將數據值寫入每個單元格中
ax = sns.heatmap(data,vmin=0, vmax=1, cmap = 'GnBu', center=0.5, robust=False,annot=True) #Set1
- fmt : 表格里顯示數據的類型
fmt ='.0%'#顯示百分比 fmt ='f' 顯示完整數字 = fmt ='g' fmt ='.3'顯示小數的位數 = fmt ='.3f' = fmt ='.3g'
- annot_kws : 鍵,值映射的dict,可選
- linewidths : 划分每個單元格的線的寬度。
- linecolor : 划分每個單元格的線的顏色。
- cbar : 是否繪制顏色條:colorbar,默認繪制
- cbar_kws : 未知 cbar_ax : 顯示x-y坐標,而不是節點的編號
- square : 為‘True’時,整個網格為一個正方形
- xticklabels, yticklabels : 可以以字符串進行命名,也可以調節編號的間隔,也可以不顯示坐標
ax = sns.heatmap(uniform_data,cmap = 'RdBu', center=0,cbar = True, square = False,xticklabels =['12','22'])#字符串命名 ax = sns.heatmap(uniform_data,cmap = 'RdBu', center=0,cbar = True, square = False,xticklabels =2)#編號間隔為2 ax = sns.heatmap(uniform_data,cmap = 'RdBu', center=0,cbar = True, square = False,xticklabels =False)#不顯示坐標
舉例:
plt.figure(figsize = (12,6)) corr_values = data.corr() sns.heatmap(corr_values, annot=True,vmax=1, square=True, cmap="Blues",fmt='.2f') plt.tight_layout() plt.savefig('heatmap.png',dpi=600) plt.show()
2.聚類圖clustermap
seaborn.clustermap(data, pivot_kws=None, method='average', metric='euclidean', z_score=None, standard_scale=None, figsize=None, cbar_kws=None, row_cluster=True, col_cluster=True, row_linkage=None, col_linkage=None, row_colors=None, col_colors=None, mask=None, **kwargs)
- 除此之外,
clustermap
支持繪制層次聚類結構圖。如下所示,我們先去掉原數據集中最后一個目標列,傳入特征數據即可。當然,你需要對層次聚類有所了解,否則很難看明白圖像多表述的含義。
舉例:
iris.pop("species") sns.clustermap(iris)
參考文獻:
【1】python3.x-seaborn.heatmap隨筆
【2】中文官網