Выравнивание изображений в сетке в Matplotlib

Beginner

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

Введение

В этом уроке мы узнаем, как использовать функцию ImageGrid из модуля mpl_toolkits.axes_grid1 в Matplotlib. Мы создадим сетку изображений 2x2 и выровним их с использованием функции ImageGrid.

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

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

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

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

Импортируем необходимые библиотеки и создаем массивы изображений

Начнем с импорта необходимых библиотек и создания четырех массивов изображений размером 10x10 с использованием функций arange и reshape из библиотеки NumPy.

import matplotlib.pyplot as plt
import numpy as np
from mpl_toolkits.axes_grid1 import ImageGrid

im1 = np.arange(100).reshape((10, 10))
im2 = im1.T
im3 = np.flipud(im1)
im4 = np.fliplr(im2)

Создаем объект Figure и объект ImageGrid

Далее мы создаем объект figure с использованием функции plt.figure и передаем аргумент figsize, чтобы установить размер рисунка. Затем мы создаем объект ImageGrid с использованием функции ImageGrid и передаем в нее figure, 111 в качестве аргумента для подграфика, (2, 2) в качестве аргумента nrows_ncols, чтобы создать сетку из 2x2 осях, и 0.1 в качестве аргумента axes_pad, чтобы установить расстояние между осями.

fig = plt.figure(figsize=(4., 4.))
grid = ImageGrid(fig, 111, nrows_ncols=(2, 2), axes_pad=0.1)

Перебираем сетку и отображаем изображения

Затем мы перебираем объект grid с использованием функции zip, чтобы перебрать как оси, так и массивы изображений. Мы отображаем каждое изображение на соответствующей оси с использованием функции imshow.

for ax, im in zip(grid, [im1, im2, im3, im4]):
    ax.imshow(im)

Показываем график

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

plt.show()

Резюме

В этом уроке мы узнали, как использовать функцию ImageGrid из модуля mpl_toolkits.axes_grid1 в Matplotlib для выравнивания нескольких изображений в сетке. Мы создали сетку 2x2 изображений и отобразили их с использованием функции imshow.