<p>matplotlib中通常的轴是矩形的。然而,对于卡通比中的一些投影,显示一个部分甚至没有定义的矩形是没有意义的。那些地区被包围了。这样可以确保轴内容始终保持在边界内。在</p>
<p>如果您不希望这样做,而是使用圆形边框,即使绘图的一部分可能位于圆的外部,也可以手动定义该圆:</p>
<pre><code>import numpy as np
from matplotlib import pyplot as plt
import cartopy.crs as ccrs
# Create dummy data, latitude from -90(S) to 90 (N), lon from -180 to 180
theta, phi = np.meshgrid(np.arange(0,180),np.arange(0,360));
theta = -1*(theta.ravel()-90)
phi = phi.ravel()-180
# Make mask for hemisphere
mask_north = theta > 40
data_crs= ccrs.PlateCarree() # Data CRS
# Grab map projections for various plots
map_proj_N = ccrs.Orthographic(central_longitude=0, central_latitude=90)
fig = plt.figure()
ax_N = fig.add_subplot(121, projection=map_proj_N)
ax_N.scatter(phi[mask_north], theta[mask_north],
c = theta[mask_north], transform=data_crs,
vmin = -90, vmax = 90)
ax_N.set_title('Northern hemisphere')
### Remove undesired patch
ax_N.patches[0].remove()
### Create new circle around the axes:
circ = plt.Circle((.5,.5), .5, edgecolor="k", facecolor="none",
transform=ax_N.transAxes, clip_on=False)
ax_N.add_patch(circ)
#### For comparisson, plot the full data in the right subplot:
ax = fig.add_subplot(122,projection = map_proj_N)
ax.scatter(phi, theta, c = theta,
transform=data_crs, vmin = -90, vmax = 90)
ax.set_title('Northern hemisphere')
plt.show()
</code></pre>
<p><a href="https://i.stack.imgur.com/fc5tQ.png" rel="nofollow noreferrer"><img src="https://i.stack.imgur.com/fc5tQ.png" alt="enter image description here"/></a></p>