Введение
В этом практическом занятии мы научимся использовать Matplotlib для создания вложенных графиков с использованием классов HBoxDivider и VBoxDivider. Мы рассмотрим простой пример, демонстрирующий, как эти классы могут быть использованы для организации нескольких вложенных графиков.
Советы по работе с ВМ
После запуска виртуальной машины щелкните в левом верхнем углу, чтобы переключиться на вкладку Ноутбук и приступить к практике в Jupyter Notebook.
Иногда может потребоваться подождать несколько секунд, пока Jupyter Notebook полностью загрузится. Валидация операций не может быть автоматизирована из-за ограничений Jupyter Notebook.
Если вы столкнетесь с проблемами во время обучения, не стесняйтесь обращаться к Labby. Оставьте отзыв после занятия, и мы оперативно решим проблему для вас.
Импортируем необходимые библиотеки
Начнем с импорта необходимых библиотек — matplotlib и numpy.
import matplotlib.pyplot as plt
import numpy as np
Создаем данные
Создадим два массива numpy, которые будут использоваться в качестве данных для наших вложенных графиков.
arr1 = np.arange(20).reshape((4, 5))
arr2 = np.arange(20).reshape((5, 4))
Создаем вложенные графики с использованием HBoxDivider
Создадим два вложенных графика рядом с использованием класса HBoxDivider. Также настроим расположение осей так, чтобы они имели одинаковую высоту, сохраняя при этом их соотношение сторон.
fig, (ax1, ax2) = plt.subplots(1, 2)
ax1.imshow(arr1)
ax2.imshow(arr2)
pad = 0.5 ## отступ в дюймах
divider = HBoxDivider(
fig, 111,
horizontal=[Size.AxesX(ax1), Size.Fixed(pad), Size.AxesX(ax2)],
vertical=[Size.AxesY(ax1), Size.Scaled(1), Size.AxesY(ax2)])
ax1.set_axes_locator(divider.new_locator(0))
ax2.set_axes_locator(divider.new_locator(2))
plt.show()
Создаем вложенные графики с использованием VBoxDivider
Создадим два вложенных графика один под другим с использованием класса VBoxDivider. Настроим расположение осей так, чтобы они имели одинаковую ширину, сохраняя при этом их соотношение сторон.
fig, (ax1, ax2) = plt.subplots(2, 1)
ax1.imshow(arr1)
ax2.imshow(arr2)
divider = VBoxDivider(
fig, 111,
horizontal=[Size.AxesX(ax1), Size.Scaled(1), Size.AxesX(ax2)],
vertical=[Size.AxesY(ax1), Size.Fixed(pad), Size.AxesY(ax2)])
ax1.set_axes_locator(divider.new_locator(0))
ax2.set_axes_locator(divider.new_locator(2))
plt.show()
Резюме
В этом практическом занятии мы узнали, как использовать классы HBoxDivider и VBoxDivider в Matplotlib для создания вложенных графиков. Мы увидели, как настроить расположение осей, чтобы они имели одинаковую высоту или ширину, сохраняя при этом их соотношение сторон. Эти классы могут быть полезны, когда необходимо расположить несколько вложенных графиков в одной фигуре.