2016-04-06 14 views
1

画像の等高線マップの両方の軸xとyに対して、例50の値を減算したいと思います。軸を変更して-50〜50の範囲で始めるようにします。contour map等高線マップ軸のpython値を減算する

イメージはカラーマップと重複しますが、x軸とy軸はcontourmapに対応します。

Iは等高線が基本的に生成するために使用されるコード:

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() 

ここにfits_data1「私の第一の画像アレイは等高線と「array_auxiliar」でプロットされている画像が等高線の下に重なっていますどのデータがカラーバーに関連しているかを示します。

'fits-data1'は2x2配列で、各インデックス[i]と[j]に50を引いてみましたが、x軸とy軸を-50アイデアは、画像内の(0,0)点が画像中心に対応するという考え方です。

ありがとうございます!

+0

んばかりのxおよびマップのY軸は(0〜100) –

+0

私は、オリジナルのポストにいくつかの変更をしたおかげで:) –

答えて

0

documentationによれば、サーフェスの座標を指定しないと自動的に選択されます。 plt.contour(Z)があり、plt.contour(X, Y, Z)が必要です。これを達成するにはnumpy.meshgrid()を使用してください。plt.contour()の例もあります。

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) 

マイナーちらほら、numpy.linspace()は(包括的)停止、開始]の範囲内の等間隔のデータを生成します。これにより、np.arange()を使用する場合と異なる番号が生成される可能性があります。

>>> 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

は、それはたくさんの感謝を働きました! –

関連する問題