利用matplotlib中imshow()函數繪圖


 

matplotlib  是Python最著名的2D繪圖庫,它提供了一整套和matlab相似的命令API,十分適合交互式地進行制圖。而且也可以方便地將它作為繪圖控件,嵌入GUI應用程序中。通過簡單的繪圖語句,就可以繪制出高質量的圖了。

這里我們就主要講一下inshow()函數的使用吧。

一、引入matplotlib函數庫

如果你使用的是windows平台,大家可以直接下載對應版本的matplotlib庫的exe文件安裝即可。

使用下面的命令引入matplotlib的pyplot模塊:

import matplotlib.pyplot as plt

為方便起見,這樣我們就可以用plt來代替matplotlib.pyplot使用了。

 

二、Figure和Subplot

matplotlib的圖像都位於Figure對象中,實際上就是創建了一個空的圖像窗口。可以用plt.figure創建一個新的Figure。

fig = plt.figure()

不能通過空Figure繪圖,必須用add_subplot()創建一個或多個子sunplot繪圖區才能繪圖。

ax = fig.add_subplot(221)

意思是:繪制2×2兩行兩列共4個subplot圖像,當前選中第一個。編號從1開始。

得到如下的圖像:

 

三、繪制z = sqrt(x^2+y^2) 的二維函數輸出圖像

(1)准備數據

我們采用二維數組產生兩個二維矩陣,對應於所有的(x,y)對。

要使用數組,我們使用NumPy 模塊。

import numpy as np

points = np.arange(-5,5,0.01)   #產生1000個-5到5等間隔的點

xs,ys = np.meshgrid(points,points)   #np.meshgrid()接受兩個一維數組產生兩個二維矩陣((x,y)對)。

z = np.sqrt(xs**2+ys**2)   #計算z = sqrt(x^2+y^2)的值

(2)繪圖

ax = fig.add_subplot(221)   #第一個子圖

ax.imshow(z)   #默認配置

ax = fig.add_subplot(222)   #第一個子圖

ax.imshow(z,cmap = plt.cm.gray)   #第二個子圖,使用自定義的colormap(灰度圖)

ax = fig.add_subplot(223)   #第一個子圖

ax.imshow(z,cmap=plt.cm.cool)   #第二個子圖,使用自定義的colormap

ax = fig.add_subplot(224)   #第一個子圖

ax.imshow(z,cmap=plt.cm.hot)   #第二個子圖,使用自定義的colormap

plt.show()   #顯示圖像

於是,漂亮的圖像就出來了。

可是,細心的你發現,圖的坐標怎么是0-1000呢?是這樣的,我們給imshow傳入z矩陣是1000×1000的,z的索引其實就是圖像的坐標,而其值才是通過圖的顏色表現出來的。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM