我必须绘制尺寸为 (2779, 1334) 的二维数组(称为 para_beta)。这些尺寸是指进行测量的(时间、高度)。
当我使用代码进行绘图时,x 轴和 y 轴刻度只是数组维度的计数,并不反射(reflect)时间或高度。 我有 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,y 轴应延伸到 20。
最佳答案
para_beta
是 2D(时间 x 高度),对吗?然后读入调用需要反射(reflect)这两个维度:
para_beta_raw = nc_file.variables['para_beta'][:,:]
(注意两个冒号,而不是一个)。
关于python - 使用 imshow 绘制二维数组,设置轴值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37546769/