使用matplotlib繪制熱圖(heatmap)全過程
matplotlib繪制熱圖(heatmap)
python常用的繪圖庫就是matplotlib,今天在給公司繪圖時,偶然間發(fā)現(xiàn)matplotlib可以繪制熱圖,并且十分簡潔。
拿出來跟大家分享一下
(由于涉及到公司數(shù)據(jù)問題,這里采用隨機數(shù)生成數(shù)據(jù)進行實驗)
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(): #定義熱圖的橫縱坐標 xLabel = ['A','B','C','D','E'] yLabel = ['1','2','3','4','5'] #準備數(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個劃分,并在第1個位置上進行作圖 ax = fig.add_subplot(111) #定義橫縱坐標的刻度 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) #增加標題 plt.title("This is a title", fontproperties=font) #show plt.show() d = draw()
效果圖如下
為了更清晰地看出二維數(shù)值矩陣與熱圖之間的對應(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]]
從對應(yīng)關(guān)系我們可以看出,圖像的左上角為坐標原點,第一行對應(yīng)的二維矩陣中的第一行數(shù)據(jù),以此類推。
同時我們可以看出數(shù)值越大的單元,對應(yīng)熱圖中的顏色越深。
其實這是一個可選項,只需要改變
im = ax.imshow(data, cmap=plt.cm.hot_r)
中的參數(shù)cmap為hot_r,其中_r的意思是就是按照顏色越深,數(shù)值越大,如果想數(shù)值越大,顏色越淺,只需要去掉_r,直接為hot就行。
同時這個hot是熱圖配色的其中一個主題
主題色參數(shù)可選
hot
從黑平滑過度到紅、橙色和黃色的背景色,然后到白色。cool
包含青綠色和品紅色的陰影色。從青綠色平滑變化到品紅色。gray
返回線性灰度色圖。bone
具有較高的藍色成分的灰度色圖。該色圖用于對灰度圖添加電子的視圖。white
全白的單色色圖。spring
包含品紅和黃的陰影顏色。summer
包含綠和黃的陰影顏色。autumn
從紅色平滑變化到橙色,然后到黃色。winter
包含藍和綠的陰影色。
右側(cè)的顏色刻度條colorbar也是可選的,如果不寫就不會顯示
總結(jié)
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
PyTorch搭建ANN實現(xiàn)時間序列風(fēng)速預(yù)測
這篇文章主要為大家介紹了PyTorch搭建ANN實現(xiàn)時間序列風(fēng)速預(yù)測,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2022-05-05Python Logging 日志記錄入門學(xué)習(xí)
這篇文章主要介紹了Python Logging 日志記錄入門學(xué)習(xí),小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2018-06-06