Выравнивание изображений с использованием ImageGrid в Matplotlib

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

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

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

Введение

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

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

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

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

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

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

Сначала нам нужно импортировать необходимые библиотеки, включая Matplotlib, cbook и ImageGrid.

import matplotlib.pyplot as plt
from matplotlib import cbook
from mpl_toolkits.axes_grid1 import ImageGrid

Создаем фигуру и ImageGrid

Далее мы создаем фигуру и ImageGrid с параметром nrows_ncols, чтобы определить количество строк и столбцов в сетке.

fig = plt.figure(figsize=(5.5, 3.5))
grid = ImageGrid(fig, 111,  ## аналогично subplot(111)
                 nrows_ncols=(1, 3),
                 axes_pad=0.1,
                 label_mode="L")

Загружаем данные изображения

Мы будем использовать пример данных изображения под названием bivariate_normal.npy из cbook, чтобы продемонстрировать ImageGrid. Мы загружаем данные изображения с использованием функции get_sample_data из cbook.

Z = cbook.get_sample_data("axes_grid/bivariate_normal.npy")
im1 = Z
im2 = Z[:, :10]
im3 = Z[:, 10:]
vmin, vmax = Z.min(), Z.max()

Отображаем изображения в ImageGrid

Наконец, мы отображаем изображения в ImageGrid с использованием функции imshow и функции zip, чтобы перебирать оси в сетке.

for ax, im in zip(grid, [im1, im2, im3]):
    ax.imshow(im, origin="lower", vmin=vmin, vmax=vmax)

plt.show()

Резюме

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