Как легко добавить sub_axes с правильным положением и размером в matplotlib и cartopy?Python

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Как легко добавить sub_axes с правильным положением и размером в matplotlib и cartopy?

Сообщение Anonymous »

Я хочу добавить вторую ось в правом верхнем углу первой оси. Погуглив, я нашел два способа сделать что-то подобное: fig.add_axes() и mpl_toolkits.axes_grid.inset_locator.inset_axes. Но fig.add_axes() не принимает аргумент Transform. Поэтому следующий код выдает ошибку. Таким образом, позиция не может находиться под координатами родительской оси, а под координатами фигуры.

Код: Выделить всё

import matplotlib.pyplot as plt
import cartopy.crs as ccrs
fig, ax = plt.subplots(1, 1, subplot_kw={'projection': ccrs.PlateCarree()})
ax2 = fig.add_axes([0.8, 0, 0.2, 0.2], transform=ax.transAxes, projection=ccrs.PlateCarree())
И inset_axes() не принимает аргумент проекции, поэтому я не могу добавить ax2 в качестве геокартины -оси.

Код: Выделить всё

from mpl_toolkits.axes_grid.inset_locator import inset_axes
import matplotlib.pyplot as plt
import cartopy.crs as ccrs
fig, ax = plt.subplots(1, 1, subplot_kw={'projection': ccrs.PlateCarree()})

# The following line doesn't work
ax2 = inset_axes(ax, width='20%', height='20%', axes_kwargs={'projection': ccrs.PlateCarree()})
# Doesn't work neither:
ax2 = inset_axes(ax, width='20%', height='20%', projection=ccrs.PlateCarree())
Я задал вопрос по вопросу matplotlib. Кажется, следующий код работает хорошо, если это не топоры Cartopy.

Код: Выделить всё

import matplotlib as mpl
fig, ax = plt.subplots(1, 1)
box = mpl.transforms.Bbox.from_bounds(0.8, 0.8, 0.2, 0.2)
ax2 = fig.add_axes(fig.transFigure.inverted().transform_bbox(ax.transAxes.transform_bbox(box)))
Вопрос:

Как легко добавить sub_axes с правильным положением и размером в matplotlib и cartopy?

Насколько я понимаю, после ax.set_extend() размер осей изменится. Итак, может быть, есть способ, которым некоторая точка sub_axes (например: верхний правый угол ax2) может быть закреплена в одной фиксированной позиции родительских_осей (например: верхний правый угол ax1)?

Подробнее здесь: https://stackoverflow.com/questions/455 ... ib-and-car
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Python»