I have some points plotted on a NorthPolarStero map in Cartopy using the following code
fig, ax = plt.subplots(1,1,figsize=(8,8), subplot_kw={'projection': ccrs.NorthPolarStereo()})
ax.scatter([x[0] for x in max_coords[:-1]],
[x[1] for x in max_coords[:-1]],
color='k',
s=50,
marker='x',transform=ccrs.PlateCarree(),zorder=5,
label='BSH Center 1980-2020')
ax.set_extent([-180, 180, 90, 66], ccrs.PlateCarree())
ax.add_feature(cartopy.feature.LAND, edgecolor='black',zorder=1)
ax.legend(fontsize='x-large')
But I would actually like to plot just the top half of this image, like this:
If I change the “`ax.set_extent“ line to either:
[90, -90, 90, 66]
or
[-90, 90, 90, 66]
It just gives me the bottom half of the plot, like this:
Does anybody know how to get the top half? I have also tried setting the central_longitude keyword of the NorthPolarStereo line to +/- 180, but it just shows the wrong half upside down.
Advertisement
Answer
To set extents for plotting the required area, you should use the coordinates of the projection in use ccrs.NorthPolarStereo(). The relevant code you need is: –
ax.set_extent([-2.633e+06, 2.696e+06, -6e+04, 2.9e+06], crs=ccrs.NorthPolarStereo())
and you should get the plot similar to this:



