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

Python實現(xiàn)矩陣可視化的示例代碼

 更新時間:2023年10月19日 09:53:22   作者:微小冷  
matplotlib中提供了兩個矩陣可視化函數(shù),分別是imshow和matshow,本文主要為大家詳細(xì)介紹了如何使用這兩個函數(shù),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下

imshow和matshow

matplotlib中提供了兩個矩陣可視化函數(shù),分別是imshow和matshow,由于二者過于相似,且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()

但無論是imshow也好,還是matshow也罷,對矩陣,尤其是小矩陣,展示得并不完美,徒有偽彩色對應(yīng),而并無具體的數(shù)值,那么對于一些需要看到實際數(shù)值的場合,其表現(xiàn)力當(dāng)然是不夠的。

顯示數(shù)值

所以接下來,就要在特定的格子中,寫下矩陣的具體數(shù)值。

from itertools import product

M,N = 3,6
x = np.random.rand(M,N)

plt.matshow(x)
for i,j in product(range(M),range(N)):
    plt.text(j-0.15, i, f"{x[i,j]:.2}")

plt.show()

product是排列組合迭代器,可以將輸入序列的元素兩兩組合在一起,從而避免循環(huán)嵌套。plt.text的作用就是顯示數(shù)值,其中j表示x坐標(biāo),i表示y軸坐標(biāo)。在矩陣索引中,i表示行號,j表示列號。

這張圖當(dāng)然也有問題,由于文字是橫著寫的,但矩陣中的格子卻是正方形的,這個顯然看上去不太和諧。如果用pcolormesh這種像素形狀可以更改的函數(shù),顯然更加合適。

但pcolormesh有兩個問題,一是坐標(biāo)軸方向和矩陣下標(biāo)的方向不符,二是坐標(biāo)標(biāo)簽的位置并不指格點中間,為此需要稍加改造。

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)

其中,xticks和yticks用于重新映射坐標(biāo),將N.5映射為N,這樣坐標(biāo)位置也就轉(zhuǎn)化為了具體數(shù)值;invert_yaxis表示y軸坐標(biāo)翻轉(zhuǎn),從而直角坐標(biāo)系被改為矩陣坐標(biāo)系。

效果如下

到此這篇關(guān)于Python實現(xiàn)矩陣可視化的示例代碼的文章就介紹到這了,更多相關(guān)python矩陣可視化內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • python攻防-破解附近局域網(wǎng)WIFI密碼實現(xiàn)上網(wǎng)自由

    python攻防-破解附近局域網(wǎng)WIFI密碼實現(xiàn)上網(wǎng)自由

    本文將記錄學(xué)習(xí)如何通過 Python 腳本實破解附近局域網(wǎng) WIFI 密碼的暴力破解,隨時隨地免費蹭網(wǎng),再也不被WiFi密碼困擾,實現(xiàn)蹭網(wǎng)自由
    2021-08-08
  • Python開發(fā)工具PyCharm的下載與安裝步驟圖文教程

    Python開發(fā)工具PyCharm的下載與安裝步驟圖文教程

    這篇文章主要為大家介紹了Python開發(fā)工具PyCharm的下載與安裝步驟圖文教程,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-07-07
  • python中altair可視化庫實例用法

    python中altair可視化庫實例用法

    在本篇文章里小編給大家整理的是一篇關(guān)于python中altair可視化庫實例用法,對此有興趣的朋友們可以學(xué)習(xí)下。
    2021-01-01
  • PyQt5+PyQt5Designer的安裝步驟

    PyQt5+PyQt5Designer的安裝步驟

    本文主要介紹了PyQt5+PyQt5Designer的安裝步驟,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-01-01
  • Python編寫漏洞驗證腳本批量測試繁瑣漏洞

    Python編寫漏洞驗證腳本批量測試繁瑣漏洞

    這篇文章主要為大家介紹了Python編寫漏洞驗證腳本來批量測試繁瑣的漏洞實現(xiàn),有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步
    2022-02-02
  • Python實現(xiàn)本地緩存的幾種方法小結(jié)

    Python實現(xiàn)本地緩存的幾種方法小結(jié)

    緩存是一種常見的技術(shù),用于存儲重復(fù)請求的結(jié)果,Python 作為一種靈活的編程語言,提供了多種實現(xiàn)本地緩存的方法,本文將探討 Python 中實現(xiàn)本地緩存的幾種策略,并提供具體的代碼示例,感興趣的小伙伴跟著小編一起來看看吧
    2024-07-07
  • Python轉(zhuǎn)換字典成為對象,可以用

    Python轉(zhuǎn)換字典成為對象,可以用"."方式訪問對象屬性實例

    這篇文章主要介紹了Python轉(zhuǎn)換字典成為對象,可以用"."方式訪問對象屬性實例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-05-05
  • Python使用騰訊云API實現(xiàn)短信驗證碼功能

    Python使用騰訊云API實現(xiàn)短信驗證碼功能

    使用Python與騰訊云接口對接,實現(xiàn)短信驗證碼功能變得非常簡單,只需要幾行代碼就能夠輕松實現(xiàn)短信的發(fā)送,無須關(guān)心復(fù)雜的短信協(xié)議和底層實現(xiàn),讀者可以根據(jù)自己的實際需求,靈活使用騰訊云短信SDK提供的API來實現(xiàn)更豐富的短信功能
    2024-01-01
  • 通過selenium抓取某東的TT購買記錄并分析趨勢過程解析

    通過selenium抓取某東的TT購買記錄并分析趨勢過程解析

    這篇文章主要介紹了通過selenium抓取某東的TT購買記錄并分析趨勢過程解析,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2019-08-08
  • Python給定一個句子倒序輸出單詞以及字母的方法

    Python給定一個句子倒序輸出單詞以及字母的方法

    今天小編就為大家分享一篇Python給定一個句子倒序輸出單詞以及字母的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-12-12

最新評論