python - 使用 imshow 绘制二维数组,设置轴值

标签 python multidimensional-array imshow

我必须绘制尺寸为 (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。

enter image description here

最佳答案

para_beta 是 2D(时间 x 高度),对吗?然后读入调用需要反射(reflect)这两个维度:

para_beta_raw = nc_file.variables['para_beta'][:,:](注意两个冒号,而不是一个)。

关于python - 使用 imshow 绘制二维数组,设置轴值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37546769/

相关文章:

python - 仅将循环返回的值发送给 print() 一次

c - 奇怪的数组字符串输出

javascript - 如何在电子表格的 Google Apps 脚本中使用数组作为自定义函数的参数

python - 使用 alpha 值绘制数据,生成一幅彩色图像 - Matplotlib

python - 非线性 pyplot imshow 颜色

python - adfuller 测试收到 ValueError : too many values to unpack

python - IO错误: Errno 2 No such file or directory python

C# - 使用 Python 文件中的方法

javascript - 如何转换经典 .ASP VB 多维数组(来自记录集)以便在 javascript .js 文件中使用?

matplotlib pyplot imshow 图像之间的紧密间距