Python 根据basemap、matplotlib的数据在绘图上绘制海岸线

Python 根据basemap、matplotlib的数据在绘图上绘制海岸线,python,matplotlib,matplotlib-basemap,Python,Matplotlib,Matplotlib Basemap,考虑到其他人的例子,我试图解决这个问题。然而,我仍然没有得到我想要的结果。我得到的结果是没有海岸线或没有海岸线,也没有数据图(我使用了pcolor) 我使用的数据是通过感兴趣区域的netcdf温度文件。因为数据本身没有边界信息,我想在这个图上画出海岸线。 我的代码如下: Temp_plt = Temp[18,:,:] Lon_plt = Lon[18,:,:] Lat_plt = Lat[18,:,:] lons = Lon_plt[0] lats = Lat_plt[

考虑到其他人的例子,我试图解决这个问题。然而,我仍然没有得到我想要的结果。我得到的结果是没有海岸线或没有海岸线,也没有数据图(我使用了pcolor)

我使用的数据是通过感兴趣区域的netcdf温度文件。因为数据本身没有边界信息,我想在这个图上画出海岸线。 我的代码如下:

Temp_plt =  Temp[18,:,:]
Lon_plt = Lon[18,:,:]
Lat_plt = Lat[18,:,:]
lons       = Lon_plt[0]
lats       = Lat_plt[0]
lat_min = min(lats)
lat_max = max(lats)
lon_min = min(lons)
lon_max = max(lons)
Temp_c = Temp_plt-273.15
m = Basemap(
        projection = 'merc',
        llcrnrlat=lat_min, urcrnrlat=lat_max,
        llcrnrlon=lon_min, urcrnrlon=lon_max,
        resolution='h', area_thresh=0.01
    )

m.drawcoastlines()
lon, lat= m.makegrid(Temp_plt.shape[1],Temp_plt.shape[0])
x1, y1 = m(lon,lat)
myPLT = m.pcolor(x1,y1,Temp_c)
因为我的经度(Lon_plt)和纬度(Lat_plt)是2D数组,所以我刚刚尝试了pcolor的那些值,而不是makegrid中的x1和y1。然而,在那个时候,我看不到任何海岸线,只能看到温度的彩色图。从上面的代码中,我只能看到整个情节都是红色

任何想法或帮助都将不胜感激

谢谢,


Isaac

如注释中所述,应该在pcolor()函数之后调用drawCoasines()函数,以便线条覆盖着色,而不是相反。

我认为当前代码中的问题在于没有正确构建坐标网格
Temp_plt.shape
将给出阵列的形状,而不是实际坐标。因此,使用
Lon_plt
Lat_plt
是一种方法。但是在
pcolor
中使用它们之前,您必须将它们从lat/lon转换为地图坐标:
x1,y1=m(lon\u plt,lat\u plt)
。你试过了吗?谢谢你abudis事实上我发现了我的问题。这是因为奥雷德在普科洛尔和m.Draw海岸线之间。绘制的海岸线应在pcolor之后。再次感谢您的时间和帮助。