简介
在本教程中,我们将学习如何使用 Matplotlib 中 mpl_toolkits.axes_grid1 里的 ImageGrid 来对齐多个不同大小的图像。
虚拟机使用提示
虚拟机启动完成后,点击左上角切换到笔记本标签页,以访问 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
创建一个图形和图像网格
接下来,我们使用 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")
加载图像数据
我们将使用来自 cbook 的一个名为 bivariate_normal.npy 的示例图像数据来演示图像网格。我们使用 cbook 中的 get_sample_data 函数加载图像数据。
Z = cbook.get_sample_data("axes_grid/bivariate_normal.npy")
im1 = Z
im2 = Z[:, :10]
im3 = Z[:, 10:]
vmin, vmax = Z.min(), Z.max()
在图像网格中显示图像
最后,我们使用 imshow 函数和 zip 函数在图像网格中显示图像,以便遍历网格中的各个轴。
for ax, im in zip(grid, [im1, im2, im3]):
ax.imshow(im, origin="lower", vmin=vmin, vmax=vmax)
plt.show()
总结
在本教程中,我们学习了如何在 Matplotlib 中使用 ImageGrid 来排列多个不同大小的图像。我们首先导入必要的库,然后创建一个图形和图像网格,加载图像数据,最后在图像网格中显示图像。