手把手教你用python繪制熱度圖(heatmap)
1、簡單的代碼
from matplotlib import pyplot as plt import seaborn as sns import numpy as np import pandas as pd #練習的數(shù)據(jù): data=np.arange(25).reshape(5,5) data=pd.DataFrame(data) #繪制熱度圖: plot=sns.heatmap(data) plt.show()
查看效果:
2、添加X軸和Y軸標簽和標題:
plt.xlabel("X",size=20) plt.ylabel("Y",size=20,rotation=0) plt.title("heatmap",size=20)
查看效果:
3、對右側的色條(colorbar)進行調(diào)整:
在heatmap里添加關鍵字參數(shù)cbar_kws,這個參數(shù)對應是一個字典,字典的內(nèi)容傳遞給類Colorbar。這個類就是被調(diào)用來繪制色條的。
from matplotlib import pyplot as plt import seaborn as sns import numpy as np import pandas as pd #練習的數(shù)據(jù): data=np.arange(-18,18).reshape(6,6) data=pd.DataFrame(data) #設置色條的刻度: tick_=np.arange(-20,20,5).astype(float) #編輯做為參數(shù)的字典: dict_={'orientation':'vertical',"label":"color \ scale","drawedges":True,"ticklocation":"top","extend":"min", \ "filled":True,"alpha":0.8,"cmap":"cmap","ticks":tick_} #將字典傳入給參數(shù)cbar_kws: cmap=sns.heatmap(data,cbar_kws=dict_,center=0) #添加標題和標簽: plt.xlabel("X",size=20) plt.ylabel("Y",size=20,rotation=0) plt.title("heatmap",size=20) plt.show()
查看效果:
這里的orientation(定位)參數(shù)對應的參數(shù)值有vertical(垂直)和 horizontal(水平),可以調(diào)整色條的放置狀態(tài),ticks參數(shù)傳遞色條的刻度值。
4、修改色條的刻度值和標簽的字體大小、顏色:
在Colorbar類里,沒有直接的參數(shù)可以調(diào)整刻度字體的大小,所以無法通過關鍵字參數(shù)cbar_kws進行調(diào)整刻度字體大小。
但是可以調(diào)用Colorbar的ax類進行調(diào)整:
#調(diào)用Colorbar類: cbar = cmap.collections[0].colorbar #利用Colorbar類的axis類的方法,修改刻度大小和設置刻度顏色 cbar.ax.tick_params(labelsize=20,labelcolor="blue")
這里的cmap是用sns.heatmap()函數(shù)繪制熱度圖時賦予的對象
這里的關鍵步驟是cbar = cmap.collections[0].colorbar
得到的cbar.ax變量是matplotlib.axes._subplots.AxesSubplot類,和cmap變量一致
這里的cbar.ax連接到matplotlib.axis類,可以使用后者的方法
#修改色條標簽的字體大?。? cbar.ax.ylabel(ylabe="color scale",size=20,color="red",loc="center") plt.show()
查看效果:
實際上,這副熱度圖可以看做是兩張圖,左側的熱度圖和右側的色條。
5、對熱度圖顯示數(shù)值和添加網(wǎng)格線:
from matplotlib import pyplot as plt import seaborn as sns import numpy as np import pandas as pd from matplotlib import colorbar #練習的數(shù)據(jù): data=np.arange(-18,18).reshape(6,6) data=pd.DataFrame(data) #繪制熱度圖: tick_=np.arange(-20,20,5).astype(float) dict_={'orientation':'vertical',"label":"color \ scale","drawedges":True,"ticklocation":"right","extend":"min", \ "filled":True,"alpha":0.8,"cmap":"cmap","ticks":tick_,"spaci,linewidths=0.5ng":'proportional'} #繪制添加數(shù)值和線條的熱度圖: cmap = sns.heatmap(data,linewidths=0.8,annot=True,fmt="d") plt.xlabel("X",size=20) plt.ylabel("Y",size=20,rotation=0) plt.title("heatmap",size=20) #調(diào)整色帶的標簽: cbar = cmap.collections[0].colorbar cbar.ax.tick_params(labelsize=20,labelcolor="blue") cbar.ax.set_ylabel(ylabel="color scale",size=20,color="red",loc="center") plt.show()
查看效果:
6、 定義熱度圖的配色板
利用heatmapL里的參數(shù)cmap,較好看的參數(shù)有“YlGnBu”和“BuPu_r”:
要知道cmap有哪些參數(shù),報一次錯就可以了。
#練習的數(shù)據(jù): data=np.arange(-18,18).reshape(6,6) flights=pd.DataFrame(data) #設置一個1行2列的畫圖: fig,ax=plt.subplots(1,2) sns.heatmap(flights, cmap="YlGnBu",ax=ax[0]) sns.heatmap(flights, cmap="BuPu_r",ax=ax[1]) plt.show()
查看效果:
總結
到此這篇關于手把手教你用python繪制熱度圖(heatmap)的文章就介紹到這了,更多相關python繪制熱度圖內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
WIn10+Anaconda環(huán)境下安裝PyTorch(避坑指南)
這篇文章主要介紹了WIn10+Anaconda環(huán)境下安裝PyTorch(避坑指南),小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2019-01-01Python實現(xiàn)K-means聚類算法并可視化生成動圖步驟詳解
這篇文章主要介紹了Python實現(xiàn)K-means聚類算法并可視化生成動圖,本文分步驟給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下2021-05-05Python企業(yè)編碼生成系統(tǒng)之主程序模塊設計詳解
這篇文章主要介紹了Python企業(yè)編碼生成系統(tǒng)之主程序模塊設計,包括初始化、界面與邏輯實現(xiàn)相關操作技巧,需要的朋友可以參考下2019-07-07python實現(xiàn)簡單學生信息管理系統(tǒng)
這篇文章主要為大家詳細介紹了python簡單的學生信息管理系統(tǒng),文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下2020-04-04