手把手教你用python繪制熱度圖(heatmap)
1、簡單的代碼
from matplotlib import pyplot as plt import seaborn as sns import numpy as np import pandas as pd #練習(xí)的數(shù)據(jù): data=np.arange(25).reshape(5,5) data=pd.DataFrame(data) #繪制熱度圖: plot=sns.heatmap(data) plt.show()
查看效果:
2、添加X軸和Y軸標(biāo)簽和標(biāo)題:
plt.xlabel("X",size=20) plt.ylabel("Y",size=20,rotation=0) plt.title("heatmap",size=20)
查看效果:
3、對右側(cè)的色條(colorbar)進(jìn)行調(diào)整:
在heatmap里添加關(guān)鍵字參數(shù)cbar_kws,這個(gè)參數(shù)對應(yīng)是一個(gè)字典,字典的內(nèi)容傳遞給類Colorbar。這個(gè)類就是被調(diào)用來繪制色條的。
from matplotlib import pyplot as plt import seaborn as sns import numpy as np import pandas as pd #練習(xí)的數(shù)據(jù): data=np.arange(-18,18).reshape(6,6) data=pd.DataFrame(data) #設(shè)置色條的刻度: 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) #添加標(biāo)題和標(biāo)簽: plt.xlabel("X",size=20) plt.ylabel("Y",size=20,rotation=0) plt.title("heatmap",size=20) plt.show()
查看效果:
這里的orientation(定位)參數(shù)對應(yīng)的參數(shù)值有vertical(垂直)和 horizontal(水平),可以調(diào)整色條的放置狀態(tài),ticks參數(shù)傳遞色條的刻度值。
4、修改色條的刻度值和標(biāo)簽的字體大小、顏色:
在Colorbar類里,沒有直接的參數(shù)可以調(diào)整刻度字體的大小,所以無法通過關(guān)鍵字參數(shù)cbar_kws進(jìn)行調(diào)整刻度字體大小。
但是可以調(diào)用Colorbar的ax類進(jìn)行調(diào)整:
#調(diào)用Colorbar類: cbar = cmap.collections[0].colorbar #利用Colorbar類的axis類的方法,修改刻度大小和設(shè)置刻度顏色 cbar.ax.tick_params(labelsize=20,labelcolor="blue")
這里的cmap是用sns.heatmap()函數(shù)繪制熱度圖時(shí)賦予的對象
這里的關(guān)鍵步驟是cbar = cmap.collections[0].colorbar
得到的cbar.ax變量是matplotlib.axes._subplots.AxesSubplot類,和cmap變量一致
這里的cbar.ax連接到matplotlib.axis類,可以使用后者的方法
#修改色條標(biāo)簽的字體大小: cbar.ax.ylabel(ylabe="color scale",size=20,color="red",loc="center") plt.show()
查看效果:
實(shí)際上,這副熱度圖可以看做是兩張圖,左側(cè)的熱度圖和右側(cè)的色條。
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 #練習(xí)的數(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)整色帶的標(biā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ù),報(bào)一次錯(cuò)就可以了。
#練習(xí)的數(shù)據(jù): data=np.arange(-18,18).reshape(6,6) flights=pd.DataFrame(data) #設(shè)置一個(gè)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()
查看效果:
總結(jié)
到此這篇關(guān)于手把手教你用python繪制熱度圖(heatmap)的文章就介紹到這了,更多相關(guān)python繪制熱度圖內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Python使用Pillow實(shí)現(xiàn)圖像基本變化
這篇文章主要為大家詳細(xì)介紹了Python如何使用Pillow實(shí)現(xiàn)圖像的基本變化處理,文中的示例代碼講解詳細(xì),具有一定的學(xué)習(xí)價(jià)值,需要的可以了解一下2022-10-10WIn10+Anaconda環(huán)境下安裝PyTorch(避坑指南)
這篇文章主要介紹了WIn10+Anaconda環(huán)境下安裝PyTorch(避坑指南),小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2019-01-01Python實(shí)現(xiàn)K-means聚類算法并可視化生成動圖步驟詳解
這篇文章主要介紹了Python實(shí)現(xiàn)K-means聚類算法并可視化生成動圖,本文分步驟給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2021-05-05Python企業(yè)編碼生成系統(tǒng)之主程序模塊設(shè)計(jì)詳解
這篇文章主要介紹了Python企業(yè)編碼生成系統(tǒng)之主程序模塊設(shè)計(jì),包括初始化、界面與邏輯實(shí)現(xiàn)相關(guān)操作技巧,需要的朋友可以參考下2019-07-07python簡單獲取數(shù)組元素個(gè)數(shù)的方法
這篇文章主要介紹了python簡單獲取數(shù)組元素個(gè)數(shù)的方法,實(shí)例分析了Python中l(wèi)en方法的相關(guān)使用技巧,非常簡單實(shí)用,需要的朋友可以參考下2015-07-07Python實(shí)戰(zhàn)練習(xí)之終于對肯德基下手
讀萬卷書不如行萬里路,學(xué)的扎不扎實(shí)要通過實(shí)戰(zhàn)才能看出來,本篇文章手把手帶你爬下肯德基的官網(wǎng),大家可以在過程中查缺補(bǔ)漏,看看自己掌握程度怎么樣2021-10-10python實(shí)現(xiàn)簡單學(xué)生信息管理系統(tǒng)
這篇文章主要為大家詳細(xì)介紹了python簡單的學(xué)生信息管理系統(tǒng),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2020-04-04