2016-04-06 10 views
1

Örneğin 50 için belirli bir değeri 50 ve 50'den başlayacak şekilde ekseni değiştirmek istediğim bir resim kontur haritasının her iki eksenine x ve y'ye çıkarmak istiyorum. contour mapKontur harita ekseni pythonuna değerlerin çıkarılması

Görüntü, bir renk eşlemiyle üst üste gelir, ancak x ve y eksenleri, çevre yoluna karşılık gelir.

Ben kontur haritası oluşturmak için kullanılan kod temelde: 'fits_data1' benim ilk görüntü dizisi kontur harita ve 'array_auxiliar' ile çizilen görüntü kontur Haritanın altındaki üst üste İşte

plt.clf() 
plt.figure() 
ax=plt.gca() 
cba=plt.colorbar() 
line_colours = ('gray', 'white', 'black') 
contour=plt.contour(fits_data1,origin='lower',colors=line_colours) 
imgplot=plt.imshow(np.log10(array_auxiliar),origin='lower',clim=(0.0, 0.7)) 
ellipse = Ellipse(xy=(15.0, 20.0), width=b_maj,height=b_min,angle=bpa,edgecolor='b', fc='b', lw=2,fill=True) 
ax.add_patch(ellipse) 
cba.ax.set_ylabel('$log_{10}(F(Ha))$',labelpad = 15,fontsize = 15) 
plt.show() 

olduğunu

ve hangi veriler colorbar ile ilgilidir.

'fits-data1' bir 2x2 dizisidir ve her bir dizine [i] ve [j] 50'yi çıkarmayı denedim ancak x ve y eksenlerini -50'den yapmak için olası bir çözümün ne olabileceğini gerçekten göremiyorum 50. Fikir, görüntüdeki (0,0) noktanın görüntü merkezine karşılık gelmesidir.

Teşekkürler!

+0

Hayır sadece x ve haritanın y ekseni (0 100) –

+0

Ben, orijinal yayına bazı değişiklikler yaptık teşekkürler :) –

cevap

0

documentation'a göre, yüzey için koordinatları sağlamazsanız, bunlar sizin için otomatik olarak seçilecektir. plt.contour(Z) var ve plt.contour(X, Y, Z). Bunu başarmak için, plt.contour() için bir örneğe sahip olan numpy.meshgrid() kullanın.

x = np.linspace(-50, 50, fits_data1.shape[0]) 
y = np.linspace(-50, 50, fits_data1.shape[1]) 
X, Y = np.meshgrid(x, y) 
plt.contour(X, Y, fits_data1, origin='lower', colors=line_colours) 

küçük çerez, numpy.linspace() eşit (dahil) [başlatmak, durdurmak] aralığında veri aralıklı üretir. Bu, np.arange()'u kullanmadan farklı rakamlar üretebilir, bu yüzden hangisini istediğinize bağlı.

>>> np.linspace(-5, 5, 10) 
array([-5.  , -3.88888889, -2.77777778, -1.66666667, -0.55555556, 
     0.55555556, 1.66666667, 2.77777778, 3.88888889, 5.  ]) 
>>> np.linspace(-5, 5, 10, endpoint=False) 
array([-5., -4., -3., -2., -1., 0., 1., 2., 3., 4.]) 
>>> np.arange(-5, 5, 1.) 
array([-5., -4., -3., -2., -1., 0., 1., 2., 3., 4.]) 
+0

Çok daha teşekkür çalıştı! –