我設法繪製了我的數據並想添加背景圖像(地圖)。 數據由長/經度值繪製,我也有圖像三個角(左上角,右上角和左下角)的長/寬值。如何在matplotlib.pyplot.imshow中使用「範圍」
我想弄清楚如何在imshow中使用'extent'選項。然而,我發現的例子並沒有解釋如何爲每個角落分配x和y(在我的例子中我有三角的信息)。
將圖像添加到圖像時,如何指定圖像三個角的位置?
謝謝
我設法繪製了我的數據並想添加背景圖像(地圖)。 數據由長/經度值繪製,我也有圖像三個角(左上角,右上角和左下角)的長/寬值。如何在matplotlib.pyplot.imshow中使用「範圍」
我想弄清楚如何在imshow中使用'extent'選項。然而,我發現的例子並沒有解釋如何爲每個角落分配x和y(在我的例子中我有三角的信息)。
將圖像添加到圖像時,如何指定圖像三個角的位置?
謝謝
範圍定義圖像的水平和垂直值的最大值和最小值。它需要如下四個值:extent=[horizontal_min,horizontal_max,vertical_min,vertical_max]
。
假設你有沿水平軸的經度,那麼你將採取extent=[longitude_top_left,longitude_top_right,latitude_bottom_left,latitude_top_left]
。 longitude_top_left和longitude_bottom_left應該相同,latitude_top_left和latitude_top_right應該相同,並且這些對內的值可以互換。
如果您的圖像的第一個元素應該繪製在左下角,那麼也使用origin='lower'
imshow選項,否則'上'默認值就是您想要的。
下面是基於http://matplotlib.org/examples/pylab_examples/image_demo3.html顯示範圍的使用的示例。
#!/usr/bin/env python
from pylab import *
try:
from PIL import Image
except ImportError, exc:
raise SystemExit("PIL must be installed to run this example")
import matplotlib.cbook as cbook
datafile = cbook.get_sample_data('ada.png')
h = Image.open(datafile)
dpi = rcParams['figure.dpi']
figsize = h.size[0]/dpi, h.size[1]/dpi
figure(figsize=figsize)
ax = axes([0,0,1,1], frameon=False)
ax.set_axis_off()
ax.set_xlim(0,2)
ax.set_ylim(0,2)
im = imshow(h, origin='upper',extent=[-2,4,-2,4]) # axes zoom in on portion of image
im2 = imshow(h, origin='upper',extent=[0,.5,0,.5]) # image is a small inset on axes
show()
如果你沒有設置你的軸的限制,他們成爲你的程度&則似乎沒有任何效果。
還不清楚。 「水平值的最大值」是什麼意思?沒有水平的值:有一個2d矩陣。你的意思是每一行中的最大值?但是其中有一堆。那麼最大的呢?但是,水平和垂直是相同的。 –
最大值是繪圖中矩陣右邊緣的數字,最小值是左邊緣的數字。 – Yann