2016-05-31 4 views
0

寸法(2779、1334)の2D配列(para_beta)をプロットする必要があります。これらの寸法は、測定が行われた(時間、高さ)を指す。imshowを使用して軸の値を設定して2次元配列をプロットする

コードを使用してプロットすると、x軸とy軸のティックは配列の寸法の単なるカウントであり、時間や高さは反映されません。 私は実際の時間と高さを与えるtime_hour(len = 2779)と高度(len = 1334)のリストを持っており、x軸とy軸の値である必要があります。これはどうすればいいですか?

#Importing variables (from netcdf file) 
para_beta_raw = nc_file.variables['para_beta'][:] #Dim = time, height 
para_beta  = np.swapaxes(para_beta,0,1) # swap axes to put time on x axis 
time_hour  = time_bnds.tolist() 
altitude  = height_raw.tolist()  

fig = plt.figure('Parallel') 
ax1 = fig.add_subplot(111) 
im = ax1.imshow(para_beta1, aspect = 'auto', cmap = 'jet', interpolation = 'none', origin = 'lowest') 
cb = plt.colorbar(im, label = 'Parallel ATB [$m^{-1}\,sr^{-1}$]') 
cb.set_clim([0.0001, 1.0]) 
ax1.set_xlabel('Time (Decimal hours)') 
ax1.set_ylabel('Height (km)') 
plt.show() 

私はextentを使用してax1.set_xticklabels(time_hour)を使用して試してみましたが、これらは動作しません。私は、上記のコードから得られた数値を含ま - それが正しかった場合、X軸は24まで延び、および20

enter image description here

答えて

1

para_betaにy軸べきである2D(時間×高さ)、右?読み込み呼び出しには、

para_beta_raw = nc_file.variables['para_beta'][:,:](2つのコロンは1つではなく)の2つのディメンションが反映されている必要があります。

0

私はすでにduplicate of my questionを見つけましたが、これは既に回答済みです!

#Importing variables (from netcdf file) 
para_beta_raw = nc_file.variables['para_beta'][:,:] #Dim = time, height 
para_beta  = np.swapaxes(para_beta,0,1) # swap axes to put time on x axis 
time_hour  = time_bnds.tolist() 
altitude  = height_raw.tolist()  

fig = plt.figure('Parallel') 
ax1 = fig.add_subplot(111) 
im = ax1.imshow(para_beta1, extent =(time_bnds.min(), time_bnds.max(), altitude.min(), altitude.max()), aspect = 'auto', cmap = 'jet', interpolation = 'none', origin = 'lowest') 
cb = plt.colorbar(im, label = 'Parallel ATB [$m^{-1}\,sr^{-1}$]') 
cb.set_clim([0.0001, 1.0]) 
ax1.set_xlabel('Time (Decimal hours)') 
ax1.set_ylabel('Height (km)') 
plt.show() 
:私は、彼らがtime_bndsと高度の配列から取られるべきpara_beta配列から最小/最大値を取ったように私は間違っ extentを使用していました
関連する問題