Простые привязанные элементы

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

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

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

Введение

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

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

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

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

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

Импорт библиотек

Для начала вам понадобится импортировать Matplotlib и необходимые модули.

import matplotlib.pyplot as plt
from matplotlib.offsetbox import AnchoredText
from matplotlib.patches import Circle
from mpl_toolkits.axes_grid1.anchored_artists import AnchoredDrawingArea, AnchoredSizeBar

Создайте рисунок

Создайте объект рисунка и оси с помощью функции subplots() Matplotlib.

fig, ax = plt.subplots()
ax.set_aspect(1.)

Добавьте текстовые боксы

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

at = AnchoredText("Figure 1a",
                  loc='upper left', prop=dict(size=8), frameon=True,
                  )
at.patch.set_boxstyle("round,pad=0.,rounding_size=0.2")
ax.add_artist(at)

at2 = AnchoredText("Figure 1(b)",
                   loc='lower left', prop=dict(size=8), frameon=True,
                   bbox_to_anchor=(0., 1.),
                   bbox_transform=ax.transAxes
                   )
at2.patch.set_boxstyle("round,pad=0.,rounding_size=0.2")
ax.add_artist(at2)

Нарисуйте круг

Нарисуйте круг в координатах оси.

ada = AnchoredDrawingArea(20, 20, 0, 0,
                          loc='upper right', pad=0., frameon=False)
p = Circle((10, 10), 10)
ada.da.add_artist(p)
ax.add_artist(ada)

Добавьте шкалу размеров

Нарисуйте горизонтальную шкалу длиной 0,1 в координатах данных, с фиксированной подписью снизу.

asb = AnchoredSizeBar(ax.transData,
                      0.1,
                      r"1$^{\prime}$",
                      loc='lower center',
                      pad=0.1, borderpad=0.5, sep=5,
                      frameon=False)
ax.add_artist(asb)

Отобразите рисунок

Отобразите рисунок с использованием функции show() Matplotlib.

plt.show()

Резюме

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