You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

pyplot.contour()指定自定义levels返回不完整图形的问题排查

pyplot.contour()指定自定义levels返回不完整图形的问题排查

最近我在处理CESM2大集合气候数据,想绘制极端增暖事件的合成图,结果遇到了一个头疼的问题——同样是用contour()绘图,指定自定义levels列表时出来的世界地图是不完整的,但换成numpy生成的levels数组就完全正常了,下面给大家具体说说情况:

出现问题的代码

这是我最初写的代码,手动列了levels的取值:

import xarray as xr
import numpy as np
import matplotlib.pyplot as plt
import cartopy.crs as ccrs
import cartopy

plt.figure(figsize=(12,10))
ax = plt.axes(projection=ccrs.PlateCarree(central_longitude=0))
level = [-60,-50,-40,-30,-20,-10,10,20,30,40,50,60] 
ax.contour(lon, lat, z3_composite_mean - z3_djf_mean, levels=level,colors='k',transform=ccrs.PlateCarree()) 

运行后得到的是这样的不完整地图:
不完整的世界地图

能生成完整地图的代码

我只修改了levels的生成方式,用np.arange()生成了连续的区间:

level = np.arange(-60,60.1,10)  
ax.contour(lon, lat, z3_composite_mean - z3_djf_mean, levels=level, colors='k',transform=ccrs.PlateCarree())

这次就得到了完整的世界地图:
完整的世界地图

现在我有点搞不懂,这个差异到底是因为levels的定义方式导致的,还是和cartopy添加海岸线的操作有关系呢?

备注:内容来源于stack exchange,提问作者Jerry

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.16 11:58:02