您不能更改现有轴的投影,原因如下。但是,解决您的基本问题的方法只是使用此处的matplotlib文档中描述的subplot_kw
参数。例如,如果您希望所有子图具有投影,则可以执行plt.subplots()
cartopy.crs.PlateCarree
import matplotlib.pyplot as plt
import cartopy.crs as ccrs
# Create a grid of plots
fig, (ax1, ax2) = plt.subplots(ncols=2, subplot_kw={'projection': ccrs.PlateCarree()})
关于实际问题,在创建轴集时指定投影将确定您获得的轴类,每种投影类型都不同。例如
import matplotlib.pyplot as plt
import cartopy.crs as ccrs
ax1 = plt.subplot(311)
ax2 = plt.subplot(312, projection='polar')
ax3 = plt.subplot(313, projection=ccrs.PlateCarree())
print(type(ax1))
print(type(ax2))
print(type(ax3))
<class 'matplotlib.axes._subplots.Axessubplot'>
<class 'matplotlib.axes._subplots.PolarAxessubplot'>
<class 'cartopy.mpl.geoaxes.GeoAxessubplot'>
注意每个轴实际上是一个不同类的实例。