Введение
В этом руководстве мы узнаем, как использовать 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.