Matplotlib Axes Divider

Beginner

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

Введение

В этом практическом занятии мы научимся использовать Matplotlib Axes Divider для создания пользовательских макетов для подграфиков в рисунке.

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

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

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

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

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

Начнем с импорта необходимых библиотек для этого практического занятия: matplotlib.pyplot и mpl_toolkits.axes_grid1.

import matplotlib.pyplot as plt
from mpl_toolkits.axes_grid1 import Divider
import mpl_toolkits.axes_grid1.axes_size as Size

Настраиваем рисунок и оси

Создадим объект рисунка и настроим четыре объекта осей с использованием метода fig.add_axes.

fig = plt.figure(figsize=(5.5, 4))
rect = (0.1, 0.1, 0.8, 0.8)
ax = [fig.add_axes(rect, label="%d" % i) for i in range(4)]

Настраиваем делитель осей

Настроим делитель осей с использованием класса Divider и классов AxesX и AxesY из модуля mpl_toolkits.axes_grid1.axes_size. Затем используем метод new_locator для настройки позиции каждой оси.

horiz = [Size.AxesX(ax[0]), Size.Fixed(.5), Size.AxesX(ax[1])]
vert = [Size.AxesY(ax[0]), Size.Fixed(.5), Size.AxesY(ax[2])]
divider = Divider(fig, rect, horiz, vert, aspect=False)

ax[0].set_axes_locator(divider.new_locator(nx=0, ny=0))
ax[1].set_axes_locator(divider.new_locator(nx=2, ny=0))
ax[2].set_axes_locator(divider.new_locator(nx=0, ny=2))
ax[3].set_axes_locator(divider.new_locator(nx=2, ny=2))

Настраиваем пределы осей и внешний вид

Настроим пределы и внешний вид каждой оси с использованием методов set_xlim, set_ylim и tick_params.

ax[0].set_xlim(0, 2)
ax[1].set_xlim(0, 1)
ax[0].set_ylim(0, 1)
ax[2].set_ylim(0, 2)
for ax1 in ax:
    ax1.tick_params(labelbottom=False, labelleft=False)

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

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

plt.show()

Резюме

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