Matplotlib 中的图像网格对齐

PythonPythonBeginner
立即练习

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

💡 本教程由 AI 辅助翻译自英文原版。如需查看原文,您可以 切换至英文原版

简介

在本教程中,我们将学习如何使用Matplotlib的mpl_toolkits.axes_grid1模块中的ImageGrid函数。我们将创建一个2x2的图像网格,并使用ImageGrid函数对其进行排列。

虚拟机使用提示

虚拟机启动完成后,点击左上角切换到笔记本标签页,以访问Jupyter Notebook进行练习。

有时,你可能需要等待几秒钟让Jupyter Notebook完成加载。由于Jupyter Notebook的限制,操作验证无法自动化。

如果你在学习过程中遇到问题,可以随时向Labby提问。课程结束后请提供反馈,我们会及时为你解决问题。

导入必要的库并创建图像数组

我们首先导入必要的库,并使用NumPy库中的arangereshape函数创建四个10x10的图像数组。

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)

创建一个图形和一个图像网格对象

接下来,我们使用plt.figure函数创建一个figure对象,并传入figsize参数来设置图形的大小。然后,我们使用ImageGrid函数创建一个ImageGrid对象,并传入figure、作为子图参数的111、作为nrows_ncols参数的(2, 2)以创建一个2x2的轴网格,以及作为axes_pad参数的0.1来设置轴之间的间距。

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

遍历网格并绘制图像

然后,我们使用zip函数遍历grid对象,以便同时遍历轴和图像数组。我们使用imshow函数在其对应的轴上绘制每个图像。

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

显示绘图

最后,我们使用plt.show函数显示绘图。

plt.show()

总结

在本教程中,我们学习了如何使用Matplotlib的mpl_toolkits.axes_grid1模块中的ImageGrid函数在网格中对齐多个图像。我们创建了一个2x2的图像网格,并使用imshow函数进行绘制。