手把手教你用python繪制熱度圖(heatmap)
1、簡(jiǎn)單的代碼
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(jué)軸和Y軸標(biāo)簽和標(biāo)題:
plt.xlabel("X",size=20)
plt.ylabel("Y",size=20,rotation=0)
plt.title("heatmap",size=20)查看效果:

3、對(duì)右側(cè)的色條(colorbar)進(jìn)行調(diào)整:
在heatmap里添加關(guān)鍵字參數(shù)cbar_kws,這個(gè)參數(shù)對(duì)應(yīng)是一個(gè)字典,字典的內(nèi)容傳遞給類Colorbar。這個(gè)類就是被調(diào)用來(lái)繪制色條的。
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ù)對(duì)應(yīng)的參數(shù)值有vertical(垂直)和 horizontal(水平),可以調(diào)整色條的放置狀態(tài),ticks參數(shù)傳遞色條的刻度值。
4、修改色條的刻度值和標(biāo)簽的字體大小、顏色:
在Colorbar類里,沒(méi)有直接的參數(shù)可以調(diào)整刻度字體的大小,所以無(wú)法通過(guò)關(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í)賦予的對(duì)象
這里的關(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、對(duì)熱度圖顯示數(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列的畫(huà)圖: 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)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Pygame與OpenCV聯(lián)合播放視頻并保證音畫(huà)同步
Pygame的Movie模塊已經(jīng)廢棄多年,本文主要介紹了Pygame與OpenCV聯(lián)合播放視頻并保證音畫(huà)同步,文中通過(guò)示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-12-12
Python操作SQLite/MySQL/LMDB數(shù)據(jù)庫(kù)的方法
這篇文章主要介紹了Python操作SQLite/MySQL/LMDB數(shù)據(jù)庫(kù)的方法,本文給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2019-11-11
Python用摘要算法生成token及檢驗(yàn)token的示例代碼
這篇文章主要介紹了Python用摘要算法生成token及檢驗(yàn)token的示例代碼,幫助大家更好的理解和學(xué)習(xí)python,感興趣的朋友可以了解下2020-12-12
Python遞歸函數(shù)反轉(zhuǎn)序列的實(shí)現(xiàn)
本文主要介紹了Python遞歸函數(shù)反轉(zhuǎn)序列的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2023-07-07
python出現(xiàn)更新庫(kù)失敗A?new?release?of?pip?is?available:?23.0.
學(xué)習(xí)了Python我們知道它自帶了很多的庫(kù),同時(shí)我們還需要對(duì)某個(gè)庫(kù)進(jìn)行升級(jí),這篇文章主要給大家介紹了關(guān)于python出現(xiàn)更新庫(kù)失敗A?new?release?of?pip?is?available:?23.0.1?->?23.3的解決辦法,需要的朋友可以參考下2024-03-03
對(duì)python中url參數(shù)編碼與解碼的實(shí)例詳解
今天小編就為大家分享一篇對(duì)python中url參數(shù)編碼與解碼的實(shí)例詳解,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2019-07-07
使用pyinstaller打包py文件的實(shí)現(xiàn)步驟
PyInstaller是一個(gè)用于將Python腳本打包成獨(dú)立可執(zhí)行文件的工具,本文主要介紹了使用pyinstaller打包py文件,具有一定的參考價(jià)值,感興趣的可以了解一下2025-03-03

