Введение
Matplotlib - это широко используемая библиотека визуализации данных в Python. Она предоставляет различные инструменты для создания различных типов графиков, включая подграфики. При создании подграфиков часто полезно подписывать каждый график, чтобы сделать проще для читателя понять представленную информацию. В этом практическом занятии мы узнаем, как подписывать подграфики с использованием различных методов, предоставляемых Matplotlib.
Советы по работе с ВМ
После запуска ВМ щелкните в левом верхнем углу, чтобы переключиться на вкладку Notebook и получить доступ к Jupyter Notebook для практики.
Иногда вам может потребоваться подождать несколько секунд, пока Jupyter Notebook не загрузится полностью. Валидация операций не может быть автоматизирована из-за ограничений Jupyter Notebook.
Если вы сталкиваетесь с проблемами во время обучения, не стесняйтесь обращаться к Labby. Оставьте отзыв после занятия, и мы оперативно решим проблему для вас.
Импорт библиотек
Первым шагом является импорт необходимых библиотек. Мы будем использовать matplotlib.pyplot и matplotlib.transforms для создания и преобразования подграфиков.
import matplotlib.pyplot as plt
import matplotlib.transforms as mtransforms
Создание подграфиков
Далее мы создаем подграфики с использованием plt.subplot_mosaic. Мы создадим сетку подграфиков размером 3x2 и присвоим им следующие метки:
- Верхний левый график будет подписан как "a)"
- Нижний левый график будет подписан как "b)"
- Верхний правый и нижний правый графики будут подписаны соответственно как "c)" и "d)".
fig, axs = plt.subplot_mosaic([['a)', 'c)'], ['b)', 'c)'], ['d)', 'd)']], layout='constrained')
Метка внутри осей
Самый простой способ подписать подграфики - это поместить метку внутри осей. Мы можем это сделать, используя метод ax.text. Мы пройдем по каждому подграфику и добавим метку внутри осей с использованием ax.transAxes.
for label, ax in axs.items():
## label physical distance in and down:
trans = mtransforms.ScaledTranslation(10/72, -5/72, fig.dpi_scale_trans)
ax.text(0.0, 1.0, label, transform=ax.transAxes + trans,
fontsize='medium', verticalalignment='top', fontfamily='serif',
bbox=dict(facecolor='0.7', edgecolor='none', pad=3.0))
Метка вне осей
Может быть, мы предпочитаем метки вне осей, но при этом они должны быть выровнены друг с другом. В этом случае мы используем немного другой трансформ.
for label, ax in axs.items():
## label physical distance to the left and up:
trans = mtransforms.ScaledTranslation(-20/72, 7/72, fig.dpi_scale_trans)
ax.text(0.0, 1.0, label, transform=ax.transAxes + trans,
fontsize='medium', va='bottom', fontfamily='serif')
Метка с заголовком
Если мы хотим, чтобы метка была выровнена с заголовком, мы можем включить ее в заголовок или использовать ключевой аргумент loc.
for label, ax in axs.items():
ax.set_title('Normal Title', fontstyle='italic')
ax.set_title(label, fontfamily='serif', loc='left', fontsize='medium')
Отображение подграфиков
Наконец, мы отображаем подграфики с использованием plt.show().
plt.show()
Резюме
В этом практическом занятии мы узнали, как подписывать подграфики в Matplotlib с использованием различных методов. Мы использовали ax.text для подписей внутри осей, ax.set_title для подписей с заголовком и plt.subplot_mosaic для создания подграфиков. Мы также использовали matplotlib.transforms для трансформации осей, чтобы выровнять метки. Подписывая подграфики, мы можем сделать наши графики более информативными и легче понять.