Я пытаюсь построить простую функцию, которая принимает экземпляр subplot (matplotlib.axes._subplots.AxesSubplot
) и преобразует его проекцию в другую проекцию, например, в одну из проекций cartopy.crs.CRS
.
Идея выглядит примерно так:
import cartopy.crs as ccrs
import matplotlib.pyplot as plt
def make_ax_map(ax, projection=ccrs.PlateCarree()):
# set ax projection to the specified projection
...
# other fancy formatting
ax2.coastlines()
...
# Create a grid of plots
fig, (ax1, ax2) = plt.subplots(ncols=2)
# the first subplot remains unchanged
ax1.plot(np.random.rand(10))
# the second one gets another projection
make_ax_map(ax2)
Конечно, я могу просто использовать fig.add_subplot()
:
fig = plt.figure(figsize=(10,5))
ax1 = fig.add_subplot(121)
ax1.plot(np.random.rand(10))
ax2 = fig.add_subplot(122,projection=ccrs.PlateCarree())
ax2.coastlines()
но мне было интересно, есть ли подходящий метод matplotlib
для изменения проекции оси подзаголовка после того, как он был определен. Чтение matplotlib API не помогло, к сожалению.