手把手教你用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列的畫圖: 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)文章
Python使用Pillow實(shí)現(xiàn)圖像基本變化
這篇文章主要為大家詳細(xì)介紹了Python如何使用Pillow實(shí)現(xiàn)圖像的基本變化處理,文中的示例代碼講解詳細(xì),具有一定的學(xué)習(xí)價(jià)值,需要的可以了解一下2022-10-10
WIn10+Anaconda環(huán)境下安裝PyTorch(避坑指南)
這篇文章主要介紹了WIn10+Anaconda環(huán)境下安裝PyTorch(避坑指南),小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2019-01-01
Python實(shí)現(xiàn)K-means聚類算法并可視化生成動(dòng)圖步驟詳解
這篇文章主要介紹了Python實(shí)現(xiàn)K-means聚類算法并可視化生成動(dòng)圖,本文分步驟給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2021-05-05
Python素?cái)?shù)檢測(cè)實(shí)例分析
這篇文章主要介紹了Python素?cái)?shù)檢測(cè)方法,實(shí)例分析了Python判定素?cái)?shù)的相關(guān)技巧,需要的朋友可以參考下2015-06-06
Python企業(yè)編碼生成系統(tǒng)之主程序模塊設(shè)計(jì)詳解
這篇文章主要介紹了Python企業(yè)編碼生成系統(tǒng)之主程序模塊設(shè)計(jì),包括初始化、界面與邏輯實(shí)現(xiàn)相關(guān)操作技巧,需要的朋友可以參考下2019-07-07
python簡(jiǎn)單獲取數(shù)組元素個(gè)數(shù)的方法
這篇文章主要介紹了python簡(jiǎn)單獲取數(shù)組元素個(gè)數(shù)的方法,實(shí)例分析了Python中l(wèi)en方法的相關(guān)使用技巧,非常簡(jiǎn)單實(shí)用,需要的朋友可以參考下2015-07-07
Python實(shí)戰(zhàn)練習(xí)之終于對(duì)肯德基下手
讀萬(wàn)卷書不如行萬(wàn)里路,學(xué)的扎不扎實(shí)要通過(guò)實(shí)戰(zhàn)才能看出來(lái),本篇文章手把手帶你爬下肯德基的官網(wǎng),大家可以在過(guò)程中查缺補(bǔ)漏,看看自己掌握程度怎么樣2021-10-10
python實(shí)現(xiàn)簡(jiǎn)單學(xué)生信息管理系統(tǒng)
這篇文章主要為大家詳細(xì)介紹了python簡(jiǎn)單的學(xué)生信息管理系統(tǒng),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2020-04-04

