使用basemap和matplotlib绘制数据图中的海岸线
我试着通过别人的例子来解决这个问题,但还是没能得到我想要的结果。我得到的结果要么没有海岸线,要么根本没有数据图(我用了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)是二维数组,所以我直接用这些值来替代makegrid里的x1和y1。不过那时候我只看到了温度的pcolor图,没有看到任何海岸线。从上面的代码来看,我的图上只是一片红色。
如果有任何想法或帮助,我会非常感激。
谢谢,
艾萨克
1 个回答
1
正如评论中提到的,drawcoastlines() 这个函数应该在 pcolor() 函数之后调用,这样绘制的线条才能覆盖在颜色上,而不是颜色覆盖在线条上。