2017-02-22 127 views
1

假設你有以下numpy.array:您與Matplotlib:切片plt.imshow()對應切片源numpy數組嗎?

import matplotlib.pyplot as plt 
b=plt.imshow(a) 

enter image description here

我的問題繪製

a=numpy.array([[1,2,3,4],[5,6,7,8],[9,10,11,12],[13,14,15,16]]) 

:如果你的 「切片」 像這樣

b=plt.imshow(a) 
plt.xlim(0.5,2.5) 
plt.ylim(0.5,2.5) 
圖像

做所繪製的值對應於

a[1:3,1:3]? 

回答

1

每個行和列將跨越或具有寬度1.0。矩陣的行跨越x軸,並且矩陣的列跨越y軸。如果我們首先查看矩陣中的行,則第一個條目將以0.0爲中心,下一個爲1.0,依此類推。列相同。因爲寬度是1.0,所以第一個條目可以說是從-0.5到0.5,然後是0.5到1.5。由於插值,它實際上是矩陣的相鄰值的加權。

如果我們設置的情節限制這樣的:

plt.xlim(1,2) 
plt.ylim(1,2) 

,我們會選擇條目2和3(號碼1)中的行與列之間的區域。但這些值是之間的矩陣的值。

選擇a[1:3,1:3]會更喜歡:

plt.xlim(0.5, 2.5) 
plt.ylim(0.5, 2.5) 
+0

所以,從本質上講,你的答案是「是」,但我需要改變'limits'佔值的準確位置。是這樣嗎?你的回答是嗎? – FaCoffee

+0

本質上是「是」 - 限制必須符合:) –

+0

是否有辦法轉彎插補? –