欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

matplotlib基礎(chǔ)繪圖命令之imshow的使用

 更新時(shí)間:2020年08月13日 09:48:40   作者:weixin_43569478  
這篇文章主要介紹了matplotlib基礎(chǔ)繪圖命令之imshow的使用,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧

在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)文章

最新評(píng)論