matplotlib基礎(chǔ)繪圖命令之imshow的使用
在matplotlib中,imshow方法用于繪制熱圖,基本用法如下
import matplotlib.pyplot as plt import numpy as np np.random.seed(123456789) data = np.random.rand(25).reshape(5, 5) plt.imshow(data)
輸出結(jié)果如下
imshow方法首先將二維數(shù)組的值標(biāo)準(zhǔn)化為0到1之間的值,然后根據(jù)指定的漸變色依次賦予每個(gè)單元格對(duì)應(yīng)的顏色,就形成了熱圖。對(duì)于熱圖而言,通常我們還需要畫(huà)出對(duì)應(yīng)的圖例,圖例通過(guò)colorbar方法來(lái)實(shí)現(xiàn),代碼如下
plt.imshow(data) plt.colorbar()
輸出結(jié)果如下
imshow方法常用的幾個(gè)參數(shù)如下
1. cmap
cmap是colormap的簡(jiǎn)稱(chēng),用于指定漸變色,默認(rèn)的值為viridis, 在matplotlib中,內(nèi)置了一系列的漸變色,用法如下
plt.imshow(data, cmap='Greens')
輸出結(jié)果如下
完整的內(nèi)置colormap的列表見(jiàn)如下鏈接
https://matplotlib.org/tutorials/colors/colormaps.html
2. aspect
aspect用于指定熱圖的單元格的大小,默認(rèn)值為equal,此時(shí)單元格用于是一個(gè)方塊,當(dāng)設(shè)置為auto時(shí),會(huì)根據(jù)畫(huà)布的大小動(dòng)態(tài)調(diào)整單元格的大小,用法如下
plt.imshow(data, aspect='auto')
輸出結(jié)果如下
3. alpha
alpha參數(shù)用于指定透明度,用法如下
plt.imshow(data, alpha=0.8)
輸出結(jié)果如下
4. origin
orign參數(shù)指定繪制熱圖時(shí)的方向,默認(rèn)值為upper, 此時(shí)熱圖的右上角為(0, 0), 當(dāng)設(shè)置為lower時(shí),熱圖的左下角為(0,0), 用法如下
plt.imshow(data, origin='lower')
輸出結(jié)果如下
5. vmin和vmax
vmin和vmax參數(shù)用于限定數(shù)值的范圍,只將vmin和vmax之間的值進(jìn)行映射,用法如下
plt.imshow(data, vmin=-0.8, vmax=0.8) plt.colorbar()
輸出結(jié)果如下
6. interpolation
interprolation參數(shù)控制熱圖的顯示形式,是一個(gè)較難理解的參數(shù),同樣的數(shù)據(jù),不同取值對(duì)應(yīng)的熱圖形式如下
在日常使用而言,nearest和None是應(yīng)用的最多的。
7. extent
extent參數(shù)指定熱圖x軸和y軸的極值,取值為一個(gè)長(zhǎng)度為4的元組或列表,其中,前兩個(gè)數(shù)值對(duì)應(yīng)x軸的最小值和最大值,后兩個(gè)參數(shù)對(duì)應(yīng)y軸的最小值和最大值,用法如下
plt.imshow(data, extent=(-0.5, 4.5, 4.5, -0.5))
輸出結(jié)果如下
可以看到,上述代碼的輸出和默認(rèn)輸出完全一致。其實(shí), extent和origin兩個(gè)參數(shù)是相互關(guān)聯(lián)的,origin參數(shù)的值為upper時(shí),extent參數(shù)的默認(rèn)值如下
(-0.5, ncol(data) - 0.5, nrow(data)-0.5, 0.5)
當(dāng)origin參數(shù)的值為lower時(shí),extent參數(shù)的默認(rèn)值如下
(-0.5, ncol(data) - 0.5, -0.5, nrow(data)-0.5)
修改extent參數(shù)的值,圖中單元格對(duì)應(yīng)的刻度會(huì)發(fā)生變化,示意如下
plt.imshow(data,extent=(-0.5,5.5,-5.5,0.5))
輸出結(jié)果如下
大多數(shù)的情況下,我們都不需要自己來(lái)手動(dòng)指定extent參數(shù)的值。
在繪制熱圖時(shí),還可以結(jié)合x(chóng)lim和ylim參數(shù),來(lái)為熱圖的周?chē)黾涌障?,代碼如下
plt.imshow(data) plt.xlim(-1, 5) plt.ylim(5, -1) plt.colorbar()
輸出結(jié)果如下
相比R語(yǔ)言中的熱圖,matplotlib中的熱圖沒(méi)有聚類(lèi)樹(shù)的功能,需要自己手動(dòng)來(lái)實(shí)現(xiàn),但是可以很方便的添加圖例,而且受益于matplotlib靈活的基礎(chǔ)功能,可以實(shí)現(xiàn)非常復(fù)雜的如圖。
python使用plt.imshow在坐標(biāo)軸上展示圖片,坐標(biāo)設(shè)置問(wèn)題。
坐標(biāo)默認(rèn)是從上到下,從左到右,例如
matplotlib.pyplot.imshow(X, cmap=None, norm=None, aspect=None, interpolation=None, alpha=None, vmin=None, vmax=None, origin=None, extent=None, shape=None, filternorm=1, filterrad=4.0, imlim=None, resample=None, url=None, hold=None, data=None, **kwargs
他的參數(shù)很多,找了很久,才發(fā)現(xiàn),應(yīng)該是設(shè)置origin
參數(shù)。
origin : [‘upper' | ‘lower'], optional, default: None Place the [0,0] index of the array in the upper left or lower left corner of the axes. If None, default to rc image.origin.
設(shè)origin=‘lower'
,就得到如下圖:
到此這篇關(guān)于matplotlib基礎(chǔ)繪圖命令之imshow的使用的文章就介紹到這了,更多相關(guān)matplotlib imshow內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
淺談keras中的目標(biāo)函數(shù)和優(yōu)化函數(shù)MSE用法
這篇文章主要介紹了淺談keras中的目標(biāo)函數(shù)和優(yōu)化函數(shù)MSE用法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-06-06python GUI庫(kù)圖形界面開(kāi)發(fā)之PyQt5滾動(dòng)條控件QScrollBar詳細(xì)使用方法與實(shí)例
這篇文章主要介紹了python GUI庫(kù)圖形界面開(kāi)發(fā)之PyQt5滾動(dòng)條控件QScrollBar詳細(xì)使用方法與實(shí)例,需要的朋友可以參考下2020-03-03python數(shù)據(jù)可視化plt庫(kù)實(shí)例詳解
這篇文章主要介紹了python可視化數(shù)據(jù)plt庫(kù)實(shí)例,下面使用pycharm環(huán)境給大家詳細(xì)介紹,文中提到j(luò)upyter和pycharm環(huán)境的差別,需要的朋友可以參考下2021-06-06使用python批量讀取word文檔并整理關(guān)鍵信息到excel表格的實(shí)例
今天小編就為大家分享一篇使用python批量讀取word文檔并整理關(guān)鍵信息到excel表格的實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2018-11-11python輕松過(guò)濾處理臟話(huà)與特殊敏感詞匯
我們開(kāi)發(fā)的系統(tǒng)往往都離不開(kāi)信息的處理,這些信息有的內(nèi)容非常敏感,就需要過(guò)濾掉不容許出現(xiàn),2022-07-07Python中property函數(shù)用法實(shí)例分析
這篇文章主要介紹了Python中property函數(shù)用法,結(jié)合實(shí)例形式分析了property函數(shù)的功能、參數(shù)、使用方法及相關(guān)操作注意事項(xiàng),需要的朋友可以參考下2018-06-06網(wǎng)易有道2017內(nèi)推編程題 洗牌(python)
這篇文章主要為大家詳細(xì)介紹了網(wǎng)易有道2017內(nèi)推編程題:洗牌,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2019-06-06