У меня есть два участка; географическая карта и линейный участок
Я хочу, чтобы высота линейного графика соответствовала высоте географической карты. Есть ли способ получить соотношение сторон из картографических геоосей? Если я делаю ax1.get_aspect (), он возвращает «равно».
import xarray as xr
import cartopy.crs as ccrs
import matplotlib.pyplot as plt
ds = xr.tutorial.open_dataset('air_temperature')['air'].isel(time=0)
plt.figure(figsize=(15, 10))
ax1 = plt.subplot(121, projection=ccrs.PlateCarree())
ds.plot(transform=ccrs.PlateCarree(), ax=ax1, add_colorbar=False)
ax2 = plt.subplot(122)
ax2.plot([1, 2, 3], [5, 6, 7])
Окончательное редактирование:
Я неправильно понял; есть разница между делителем и топором. Я не знал, что вы могли бы создать несколько осей от делителей.
import xarray as xr
import cartopy.crs as ccrs
import matplotlib.pyplot as plt
from mpl_toolkits.axes_grid1 import make_axes_locatable
fig = plt.figure(figsize=(13, 8))
ax1 = fig.add_subplot(111, projection=ccrs.PlateCarree())
img = xr.tutorial.open_dataset('air_temperature')['air'].isel(time=0).plot(
x='lon', y='lat', ax=ax1, transform=ccrs.PlateCarree(), add_colorbar=False)
ax1.coastlines()
ax1.set_title('ax1')
divider = make_axes_locatable(ax1)
ax2 = divider.new_horizontal(size="10%", pad=0.1, axes_class=plt.Axes)
fig.add_axes(ax2)
plt.colorbar(img, cax=ax2)
ax3 = divider.new_horizontal(size="100%", pad=1, axes_class=plt.Axes)
fig.add_axes(ax3)
ax3.plot([1, 2, 3], [5, 6, 7])
![enter image description here](https://i.stack.imgur.com/AEhRb.png)