Cartopy set_extent不起作用

时间:2018-04-12 21:30:47

标签: python python-2.7 matplotlib cartopy

我正在尝试使用Mateplotlib cartopy制作下面的图。这是我正在使用的代码。

import cartopy.crs as ccrs

fig=plt.figure(figsize=(15,11))
ax = plt.subplot(111, projection=ccrs.PlateCarree(central_longitude=0))
mm =   ax.contourf(new_lon[:],lat_post,new_aa[0,:,:],transform=ccrs.PlateCarree(central_longitude=0))

ax.coastlines(resolution='10m');
ax.stock_img();
# the following two lines increaes the vertical distance between the title and the upper tick.
from matplotlib import rcParams
rcParams['axes.titlepad']=20
# drawing the longitude and latitude ticks.
gl = ax.gridlines(crs=ccrs.PlateCarree(central_longitude=0), draw_labels=True,linewidth=2, color='gray', alpha=0.5, linestyle='--')

enter image description here 然而,一旦我添加以下代码set_extent ax.set_extent([np.min(new_lon),np.max(new_lon),np.min(lat_post) ,np.max(lat_post)])

数字变得那样 enter image description here

1 个答案:

答案 0 :(得分:1)

查看原始地图,看起来经度为0,所以我猜np.min(new_lon)为0,np.min(new_lon)为360.如果您使用{{1}你在本初子午线上得到一条非常狭窄的条带。我猜你做set_extent()它会更好。

在这种情况下,我能想到以编程方式实现它的唯一方法是:

set_extent([-180, 180, ,np.min(lat_post), np.max(lat_post)]