Cartopy contourf 和海岸线,但没有显示海岸线

Cartopy contourf and coastlines but the coastlines aren't showing

我正在尝试使用 cartopy 的 contourf 和海岸线绘制从 GESC Earthdata 存档下载的区域的降水数据,但由于某种原因,仅显示数据的 cmap,而海岸线被数据遮盖了。这是我的绘图代码。

plt.clf() #clear figure before
fig=plt.figure()

ax = plt.axes(projection=ccrs.PlateCarree(central_longitude=100.0, globe=None))
ax.set_extent([95,106,0,9]) # lon_left, lon_right, lat_below, lat_upper
ax.coastlines("10m", alpha=0.1) # avail:110m, 50m, 10m..... '10m' is better resolution than default
ax.gridlines(linewidths=0.01, draw_labels=True, alpha= 0.3)
ax.xlocator = mticker.FixedLocator(np.arange(95.,106.,0.5))
ax.ylocator = mticker.FixedLocator(np.arange(0.,9.,0.5))

x,y=np.meshgrid(lat,lon) 
clevs = np.arange(5,800,50)
cs = ax.contourf(y, x, finalmean,  levels=clevs, extend="max", cmap='viridis_r', transform=ccrs.PlateCarree())
# draw legend -------------
#cax = fig.add_axes([0.1,0.018,0.8,0.05], projection=ccrs.PlateCarree()) #plot cb at the bottom [left, bottom, width, height] 
#aa=fig.colorbar(cs,cax=cax,orientation='horizontal')
aa.set_label('Rainfall (mm)')
#plt.savefig("trmm_clim_mo_1.jpg", bbox_inches='tight')
plt.show()

这是我的输出

output

我还在 plt.contourf 中指定了“转换”参数,正如那些遇到同样问题但无济于事的人所建议的那样。如果有人能指出我的代码 missing/wrong 是什么,将不胜感激。

尝试使用 matplotlib kwarg zorder 来设置绘制在彼此之上的图层。在你的例子中:

ax.coastlines("10m", alpha=0.1, zorder=3)

应该可以。 zorder 较高的对象绘制在 zorder 较低的对象之上。

或者,在调用 contourf 之后添加您的海岸线。默认情况下,您稍后添加的图层会添加到之前的图层之上。