1 回答
TA贡献1775条经验 获得超8个赞
没有可重现的样本数据,以下无法进行测试。但是,您的循环分配了一个新的ax并且不使用ax正在迭代的对象。此外,plt.show()被放置在循环内。考虑以下调整
for x, ax in enumerate(axes.flatten()):
...
ax = plt.axes(projection=ccrs.PlateCarree())
...
plt.show()
考虑将投影放在循环内的plt.subplots然后索引中:axes
fig, axes = plt.subplots(nrows=3, ncols=2, subplot_kw={'projection': ccrs.PlateCarree()})
fig.subplots_adjust(hspace=0.5)
fig.suptitle('Teleconnection Pos+ Phases {} 2020'.format(calendar.month_name[currm-1]))
axes = axes.flatten()
for x, ax in enumerate(axes):
dam = DS.where(DS['time.year']==rmax.iloc[x,1]).groupby('time.month').mean()
dam = dam.sel(month=3)#current month mean 500
dam = dam.sel(level=500)
damc = dam.to_array()
lats = damc['lat'].data
lons = damc['lon'].data
axes[x].coastlines(lw=1)
damc = damc.squeeze()
axes[x].contour(lons, lats, damc, cmap='jet')
axes[x].set_title(tindices[x])
plt.show()
plt.clf()
添加回答
举报