气象绘图中出现白条该如何解决

有的时候,我们在绘制完图形后,图形中会出现白条
类似如下:
在这里插入图片描述
代码为:

nc_file=Dataset('C:/Users/86132/sst.mon.mean.nc')
lon=nc_file.variables['lon'][:]#读取经度
lat=nc_file.variables['lat'][:]#读取纬度
sst=nc_file.variables['sst'][0][:][:]#读取0时刻海温
fig = plt.figure(figsize=(8,6),dpi=500)#创建画板
ax=fig.add_subplot(1,1,1, projection=ccrs.PlateCarree())
ax.coastlines()#添加海岸线
ax.add_feature(cfeat.LAND)#添加陆地
gl = ax.gridlines(crs=ccrs.PlateCarree(), draw_labels=True, linewidth=0.7, color='k', alpha=1, linestyle='--')#网格线
gl.xlabels_top = False  # 关闭顶端的经纬度标签
gl.ylabels_right = False  # 关闭右侧的经纬度标签
gl.xformatter = LONGITUDE_FORMATTER  # x轴设为经度的格式
gl.yformatter = LATITUDE_FORMATTER  # y轴设为纬度的格式
gl.xlocator = mticker.FixedLocator(np.arange(-180, 180.1, 30))
gl.ylocator = mticker.FixedLocator(np.arange(-90,90.1, 30))
gl.xlines=False#关闭内部经纬线
gl.ylines=False#关闭内部经纬线

ax.contourf(lon,lat,sst,levels=np.arange(-10,35),cmap='RdBu_r')
plt.savefig('海温场',bbox_inches='tight')
plt.show()

解决办法为:
利用meshgrid添加数据循环,进而防止白条的出现。

nc_file=Dataset('C:/Users/86132/sst.mon.mean.nc')
lon=nc_file.variables['lon'][:]#读取经度
lat=nc_file.variables['lat'][:]#读取纬度
sst=nc_file.variables['sst'][0][:][:]#读取0时刻海温
fig = plt.figure(figsize=(8,6),dpi=500)#创建画板
ax=fig.add_subplot(1,1,1, projection=ccrs.PlateCarree())
ax.coastlines()#添加海岸线
ax.add_feature(cfeat.LAND)#添加陆地
gl = ax.gridlines(crs=ccrs.PlateCarree(), draw_labels=True, linewidth=0.7, color='k', alpha=1, linestyle='--')#网格线
gl.xlabels_top = False  # 关闭顶端的经纬度标签
gl.ylabels_right = False  # 关闭右侧的经纬度标签
gl.xformatter = LONGITUDE_FORMATTER  # x轴设为经度的格式
gl.yformatter = LATITUDE_FORMATTER  # y轴设为纬度的格式
gl.xlocator = mticker.FixedLocator(np.arange(-180, 180.1, 30))
gl.ylocator = mticker.FixedLocator(np.arange(-90,90.1, 30))
gl.xlines=False#关闭内部经纬线
gl.ylines=False#关闭内部经纬线
#################以下步骤添加数据循环,防止白条##################
cycle_sst, cycle_lon = add_cyclic_point(sst, coord=lon)
cycle_LON, cycle_LAT = np.meshgrid(cycle_lon, lat)
ax.contourf(cycle_LON,cycle_LAT,cycle_sst,levels=np.arange(-10,35),cmap='RdBu_r')
plt.savefig('海温场',bbox_inches='tight')
plt.show()

在这里插入图片描述

  • 2
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值