最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

matplotlib實現(xiàn)矩陣和圖像的可視化表示

 更新時間:2024年03月05日 10:42:26   作者:微小冷  
這篇文章主要為大家詳細(xì)介紹了如何利用matplotlib實現(xiàn)矩陣和圖像的可視化表示,文中的示例代碼講解詳細(xì),具有一定的學(xué)習(xí)價值,感興趣的小伙伴可以了解下

偽彩圖

【plt】中提供了三種矩陣可視化函數(shù),分別是imshow, matshow以及pcolormesh,相較之下,前兩者比較相似,且imshow常被用做圖片展示工具,所以matshoww這個函數(shù)基本沒什么人知道,二者對比如下

在這里插入圖片描述

import matplotlib.pyplot as plt
import numpy as np

x = np.random.rand(5,5)

fig,axes = plt.subplots(1,2,figsize=(8,4))

axes[0].imshow(x)
plt.title("imshow")
axes[1].matshow(x)
plt.title("matshow")

plt.tight_layout()
plt.show()

左右兩圖幾乎沒有區(qū)別,并且矩陣中每個元素都是嚴(yán)格的方形,即其長寬比并不會隨著圖窗的變化而發(fā)生變化。

相比之下,pcolormesh就靈活很多,圖中的每個元素均為長寬比可變的矩形,如果和text互相配合,就可以更加完美地表現(xiàn)矩陣,做到下圖的效果

在這里插入圖片描述

代碼如下

def drawMat(x, ax=None):
    M, N = x.shape
    if not ax:
        ax = plt.subplot()
    arrM, arrN = np.arange(M), np.arange(N)
    plt.yticks(arrM+0.5, arrM)
    plt.xticks(arrN+0.5, arrN)
    ax.pcolormesh(x)
    ax.invert_yaxis()
    for i,j in product(range(M),range(N)):
        ax.text(j+0.2, i+0.55, f"{x[i,j]:.2}")
    plt.show()

x = np.random.rand(5,5)
drawMat(x)

等高線

偽彩圖可以通過顏色來標(biāo)注矩陣中每個元素的大小,從而對矩陣元素的整體分布情況有一個大致的了解。而有時,我們希望更加清晰地了解矩陣元素的分層情況,這時可采用等高線圖contour和contourf,與偽彩圖相比,個中差別如下

在這里插入圖片描述

X, Y = np.indices([100,100])/30 - 1.5
Z = (1 - X/2 + X**5 + Y**3) * np.exp(-X**2 - Y**2)

fDct = {"contour": plt.contour, "contourf":plt.contourf,
    "pcolormesh" : plt.pcolormesh, "imshow":plt.imshow}

fig = plt.figure(figsize=(9,6))
for i,key in enumerate(fDct, 1):
    ax = fig.add_subplot(2,2,i)
    fDct[key](Z)
    plt.title(key)

plt.tight_layout()
plt.show()

colorbar

偽彩圖通過偽彩色來表現(xiàn)矩陣元素的大小,而colorbar則標(biāo)注了為彩圖中的顏色映射值,一般來說,在【plt】繪圖時,每個子圖都可以設(shè)置其自身的色條,

import numpy as np
import matplotlib.pyplot as plt

fig = plt.figure()
for i in range(2):
    ax = fig.add_subplot(2,1,i+1)
    ax = plt.pcolormesh(np.random.rand(10,20))
    plt.colorbar()

plt.show()

在這里插入圖片描述

由于上下兩張圖采用了相同的偽彩映射,所以這兩個色條有些重復(fù)了,為了讓圖像更加簡潔,從而產(chǎn)生了一張圖一個色條的需求。

下面新建一個坐標(biāo)軸,以單獨設(shè)置色條位置

fig = plt.figure()
for i in range(2):
    ax = fig.add_subplot(2,1,i+1)
    im = plt.pcolormesh(np.random.rand(10,20))
    plt.axis('off')

# 指定colorbar的位置和大小
cax = fig.add_axes([0.92, 0.1, 0.02, 0.8])
fig.colorbar(im, cax=cax)
plt.show()

效果如下

在這里插入圖片描述

這種處理方法有一個問題,即colorbar所在坐標(biāo)系將無法控制,如果使用tight_layout來進行緊湊布局,那么左側(cè)的圖像會忽視色條鋪滿整個區(qū)域。

為了讓色條可以在布局中維持不變,可通過GridSpec來進一步定制布局網(wǎng)格,

fig = plt.figure()

gs = plt.GridSpec(2, 2, width_ratios=[15, 1], height_ratios=[1, 1])

plt.subplot(gs[0, 0])
plt.title("A")
im = plt.pcolormesh(np.random.rand(10,20))
plt.axis('off')

plt.subplot(gs[1, 0])
plt.title("B")
im = plt.pcolormesh(np.random.rand(10,20))
plt.axis('off')

ax = plt.subplot(gs[:, 1])
fig.colorbar(im, cax=ax)
plt.show()

其中,width_ratios為橫向的單元格寬度比例,height_ratios為縱向的單元格高度比例。繪圖結(jié)果如下,這樣一來,無論布局如何發(fā)生變化,左側(cè)圖形與右側(cè)色條的寬度比值均為15:1,不會發(fā)生變化,從而在圖像繪制時保證了風(fēng)格的統(tǒng)一。

在這里插入圖片描述

以上就是matplotlib實現(xiàn)矩陣和圖像的可視化表示的詳細(xì)內(nèi)容,更多關(guān)于matplotlib矩陣和圖像可視化的資料請關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • 零基礎(chǔ)學(xué)Python之前需要學(xué)c語言嗎

    零基礎(chǔ)學(xué)Python之前需要學(xué)c語言嗎

    在本篇文章里小編給大家整理的是一篇關(guān)于零基礎(chǔ)學(xué)Python之前需要學(xué)c語言關(guān)系的文章,需要的朋友們可以參考下。
    2020-07-07
  • python實現(xiàn)百度關(guān)鍵詞排名查詢

    python實現(xiàn)百度關(guān)鍵詞排名查詢

    這篇文章主要介紹了python實現(xiàn)百度關(guān)鍵詞排名查詢,需要的朋友可以參考下
    2014-03-03
  • python調(diào)用百度語音REST API

    python調(diào)用百度語音REST API

    這篇文章主要為大家詳細(xì)介紹了python調(diào)用百度語音REST API,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-08-08
  • python實現(xiàn)AES加密解密

    python實現(xiàn)AES加密解密

    這篇文章主要為大家詳細(xì)介紹了python實現(xiàn)AES加密解密的相關(guān)資料,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-03-03
  • python多線程中的定時器你了解嗎

    python多線程中的定時器你了解嗎

    這篇文章主要為大家介紹了python多線程中的定時器,具有一定的參考價值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助
    2022-01-01
  • PyTorch高級特性與性能優(yōu)化方式

    PyTorch高級特性與性能優(yōu)化方式

    這篇文章主要介紹了PyTorch高級特性與性能優(yōu)化方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2025-05-05
  • Python之Await 協(xié)議的實現(xiàn)

    Python之Await 協(xié)議的實現(xiàn)

    本文主要介紹了Python之Await 協(xié)議的實現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2026-05-05
  • Python爬蟲框架Scrapy實例代碼

    Python爬蟲框架Scrapy實例代碼

    這篇文章主要介紹了Python爬蟲框架Scrapy實例代碼,需要的朋友可以參考下
    2018-03-03
  • Python內(nèi)置函數(shù)locals和globals對比

    Python內(nèi)置函數(shù)locals和globals對比

    這篇文章主要介紹了Python內(nèi)置函數(shù)locals和globals對比,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2020-04-04
  • Python操作Word文檔7種方法的實現(xiàn)與對比(史上最全)

    Python操作Word文檔7種方法的實現(xiàn)與對比(史上最全)

    在Python中操作Word文檔是一項常見的任務(wù),特別是在辦公自動化和數(shù)據(jù)處理領(lǐng)域,本文將詳細(xì)總結(jié)和對比幾種常用的Python庫和方法,有需要的可以了解下
    2025-03-03

最新評論

滁州市| 高雄县| 丰宁| 临高县| 平乐县| 夏邑县| 泾源县| 呼伦贝尔市| 宁南县| 天柱县| 宜兰市| 通化县| 临洮县| 安多县| 通化县| 乐平市| 阜阳市| 宜昌市| 商洛市| 德庆县| 铁力市| 沽源县| 射阳县| 阳城县| 浑源县| 年辖:市辖区| 裕民县| 武汉市| 抚远县| 靖西县| 申扎县| 石景山区| 隆林| 太谷县| 泽库县| 怀宁县| 理塘县| 隆德县| 都兰县| 江阴市| 濉溪县|