2017-02-08 20 views
1

アパーチャを通る回折をシミュレートする長いプログラムの一部として、私は結果としてplt.imshow()の中心を原点とするように努力しています。プロット、すなわち私は軸を変更したい。原点をimshow()プロットの中央に配置する方法

関連するコードセクションは下記のプロットを生成

n=40 
    lam=0.0006 
    k=(2*np.pi)/lam 
    z=float(input("Type screen distance, z in mm: ")) 
    rho=float(input("Type rho in mm: ")) 

    delta = 2/n 
    intensity = np.zeros((n+1,n+1)) 

    for i in range(n+1): 
     x=-1+(i*delta) 
     for j in range(n+1): 
      y =-1+(j*delta) 
      intensity[i,j] = (abs(square_2dsimpson_eval(-rho/2,rho/2,n)))**2 
    plt.imshow(intensity) 
    plt.show() 

。前もって感謝します。 enter image description here

答えて

1

原点を画像プロットの中央に配置するには、対称のextentを使用できます。

import numpy as np 
import matplotlib.pyplot as plt 

x = np.array([[1,2,1,4],[2,5,3,1],[0,1,2,2]]) 
plt.imshow(x, extent=[-x.shape[1]/2., x.shape[1]/2., -x.shape[0]/2., x.shape[0]/2. ]) 
plt.show() 

enter image description here

関連する問題