Вставленные оси для цветовых полос в Matplotlib

PythonPythonBeginner
Практиковаться сейчас

This tutorial is from open-source community. Access the source code

💡 Этот учебник переведен с английского с помощью ИИ. Чтобы просмотреть оригинал, вы можете перейти на английский оригинал

Введение

В этом руководстве показано, как контролировать позицию, высоту и ширину цветовых полос с использованием mpl_toolkits.axes_grid1.inset_locator.inset_axes. Это полезно, когда вы хотите добавить цветовую полосу к своему графику, но хотите настроить ее размер и позицию.

Советы по работе с ВМ

После запуска ВМ нажмите в левом верхнем углу, чтобы переключиться на вкладку Ноутбук и получить доступ к Jupyter Notebook для практики.

Иногда вам может потребоваться подождать несколько секунд, пока Jupyter Notebook не загрузится полностью. Валидация операций не может быть автоматизирована из-за ограничений в Jupyter Notebook.

Если вы сталкиваетесь с проблемами во время обучения, не стесняйтесь обращаться к Labby. Оставьте отзыв после занятия, и мы оперативно решим проблему для вас.

Импортируем необходимые библиотеки

Сначала нам нужно импортировать необходимые библиотеки: matplotlib и inset_axes из mpl_toolkits.axes_grid1.

import matplotlib.pyplot as plt
from mpl_toolkits.axes_grid1.inset_locator import inset_axes

Создаем график и изображение

Далее мы создадим график и изображение, чтобы показать, как добавить цветовую полосу с использованием вставленных осей.

fig, (ax1, ax2) = plt.subplots(1, 2, figsize=[6, 3])

im1 = ax1.imshow([[1, 2], [2, 3]])
im2 = ax2.imshow([[1, 2], [2, 3]])

Добавляем цветовую полосу с использованием вставленных осей

Теперь мы добавим цветовую полосу к каждому изображению с использованием inset_axes. Первая цветовая полоса будет добавлена к ax1, а вторая - к ax2.

## add colorbar to ax1
axins1 = inset_axes(
    ax1,
    width="50%",  ## width: 50% of parent_bbox width
    height="5%",  ## height: 5%
    loc="upper right",
)
axins1.xaxis.set_ticks_position("bottom")
fig.colorbar(im1, cax=axins1, orientation="horizontal", ticks=[1, 2, 3])

## add colorbar to ax2
axins2 = inset_axes(
    ax2,
    width="5%",  ## width: 5% of parent_bbox width
    height="50%",  ## height: 50%
    loc="lower left",
    bbox_to_anchor=(1.05, 0., 1, 1),
    bbox_transform=ax2.transAxes,
    borderpad=0,
)
fig.colorbar(im2, cax=axins2, ticks=[1, 2, 3])

Отображаем график

Наконец, мы отобразим график с использованием plt.show().

plt.show()

Резюме

В этом уроке мы узнали, как использовать mpl_toolkits.axes_grid1.inset_locator.inset_axes для добавления цветовой полосы к графику с настраиваемым размером и положением. Функция inset_axes позволяет нам контролировать позицию, высоту и ширину цветовой полосы, что делает создание профессионально выглядящих графиков проще.