使用matplotlib繪制熱圖(heatmap)全過程
matplotlib繪制熱圖(heatmap)
python常用的繪圖庫就是matplotlib,今天在給公司繪圖時(shí),偶然間發(fā)現(xiàn)matplotlib可以繪制熱圖,并且十分簡(jiǎn)潔。
拿出來跟大家分享一下
(由于涉及到公司數(shù)據(jù)問題,這里采用隨機(jī)數(shù)生成數(shù)據(jù)進(jìn)行實(shí)驗(yàn))
import random
from matplotlib import pyplot as plt
from matplotlib import cm
from matplotlib import axes
from matplotlib.font_manager import FontProperties
font = FontProperties(fname='/Library/Fonts/Songti.ttc')
def draw():
#定義熱圖的橫縱坐標(biāo)
xLabel = ['A','B','C','D','E']
yLabel = ['1','2','3','4','5']
#準(zhǔn)備數(shù)據(jù)階段,利用random生成二維數(shù)據(jù)(5*5)
data = []
for i in range(5):
temp = []
for j in range(5):
k = random.randint(0,100)
temp.append(k)
data.append(temp)
#作圖階段
fig = plt.figure()
#定義畫布為1*1個(gè)劃分,并在第1個(gè)位置上進(jìn)行作圖
ax = fig.add_subplot(111)
#定義橫縱坐標(biāo)的刻度
ax.set_yticks(range(len(yLabel)))
ax.set_yticklabels(yLabel, fontproperties=font)
ax.set_xticks(range(len(xLabel)))
ax.set_xticklabels(xLabel)
#作圖并選擇熱圖的顏色填充風(fēng)格,這里選擇hot
im = ax.imshow(data, cmap=plt.cm.hot_r)
#增加右側(cè)的顏色刻度條
plt.colorbar(im)
#增加標(biāo)題
plt.title("This is a title", fontproperties=font)
#show
plt.show()
d = draw()效果圖如下

為了更清晰地看出二維數(shù)值矩陣與熱圖之間的對(duì)應(yīng)關(guān)系,我們輸出二維矩陣:
[[17, 96, 11, 99, 83], [18, 17, 58, 18, 80], [87, 79, 15, 53, 4], [86, 53, 48, 36, 23], [25, 4, 94, 100, 71]]
從對(duì)應(yīng)關(guān)系我們可以看出,圖像的左上角為坐標(biāo)原點(diǎn),第一行對(duì)應(yīng)的二維矩陣中的第一行數(shù)據(jù),以此類推。
同時(shí)我們可以看出數(shù)值越大的單元,對(duì)應(yīng)熱圖中的顏色越深。
其實(shí)這是一個(gè)可選項(xiàng),只需要改變
im = ax.imshow(data, cmap=plt.cm.hot_r)
中的參數(shù)cmap為hot_r,其中_r的意思是就是按照顏色越深,數(shù)值越大,如果想數(shù)值越大,顏色越淺,只需要去掉_r,直接為hot就行。
同時(shí)這個(gè)hot是熱圖配色的其中一個(gè)主題
主題色參數(shù)可選
hot從黑平滑過度到紅、橙色和黃色的背景色,然后到白色。cool包含青綠色和品紅色的陰影色。從青綠色平滑變化到品紅色。gray返回線性灰度色圖。bone具有較高的藍(lán)色成分的灰度色圖。該色圖用于對(duì)灰度圖添加電子的視圖。white全白的單色色圖。spring包含品紅和黃的陰影顏色。summer包含綠和黃的陰影顏色。autumn從紅色平滑變化到橙色,然后到黃色。winter包含藍(lán)和綠的陰影色。
右側(cè)的顏色刻度條colorbar也是可選的,如果不寫就不會(huì)顯示
總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
Python+Pytorch實(shí)戰(zhàn)之彩色圖片識(shí)別
這篇文章主要為大家詳細(xì)介紹了如何利用Python+Pytorch實(shí)現(xiàn)彩色圖片識(shí)別功能,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以了解一下2022-09-09
Numpy截取指定范圍內(nèi)的數(shù)據(jù)方法
今天小編就為大家分享一篇Numpy截取指定范圍內(nèi)的數(shù)據(jù)方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2018-11-11
使用Python模塊進(jìn)行數(shù)據(jù)處理的詳細(xì)步驟
Python 提供了豐富的模塊和庫,用于處理各種類型的數(shù)據(jù),本文介紹了一些常用的模塊和庫,以及如何使用它們進(jìn)行數(shù)據(jù)處理的詳細(xì)步驟和代碼示例,對(duì)我們的學(xué)習(xí)或工作有一定的幫助,需要的朋友可以參考下2025-02-02
在Keras中利用np.random.shuffle()打亂數(shù)據(jù)集實(shí)例
這篇文章主要介紹了在Keras中利用np.random.shuffle()打亂數(shù)據(jù)集實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2020-06-06
關(guān)于Python中Flask全局異常處理流程詳解
Flask是一個(gè)基于Python的Web框架,它提供了全局異常處理的機(jī)制來捕獲和處理應(yīng)用程序中的異常,本文將詳細(xì)介紹Flask的全局異常處理,并提供相應(yīng)的代碼示例,需要的朋友可以參考下2023-06-06
Python將8位的圖片轉(zhuǎn)為24位的圖片實(shí)現(xiàn)方法
這篇文章主要介紹了Python將8位的圖片轉(zhuǎn)為24位的圖片的實(shí)現(xiàn)代碼,非常不錯(cuò),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2018-10-10
分享2個(gè)方便調(diào)試Python代碼的實(shí)用工具
這篇文章主要介紹了分享方便調(diào)試Python代碼的2個(gè)實(shí)用工具,可以方便展示我們調(diào)試代碼的中間狀態(tài),提升大家的編碼效率,詳細(xì)的介紹需要的小伙伴可以參考一下下面文章內(nèi)容2022-05-05

