📅  最后修改于: 2023-12-03 14:52:26.729000             🧑  作者: Mango
在 Matplotlib 中,我们可以使用 imshow()
函数来展示图片。有时候,我们可能需要更改图片的纵横比以使其更适合我们展示的场景。在本教程中,我们将介绍如何在 Matplotlib 中更改 imshow
的纵横比。
aspect
参数在 Matplotlib 中,imshow()
函数有一个名为 aspect
的参数,该参数可以用来设置图片的纵横比。默认情况下,aspect
的值为 auto
,即自动计算图片的纵横比。如果我们想手动设置纵横比,可以将 aspect
的值设置为纵横比(宽度除以高度)的比例。
import matplotlib.pyplot as plt
import numpy as np
# 创建一个 2x2 的图像数组
img_array = np.random.rand(20, 20)
# 使用 aspect 参数更改纵横比
plt.subplot(121)
plt.imshow(img_array, aspect=0.5)
plt.title('Aspect ratio = 0.5')
plt.subplot(122)
plt.imshow(img_array, aspect=2.0)
plt.title('Aspect ratio = 2.0')
plt.show()
输出:
在上面的例子中,我们创建了一个随机的 20x20 的图像数组,并使用 plt.imshow()
函数展示了该图像。我们在左侧的图像中将 aspect
参数设置为 0.5
,结果呈现出一个更为宽大的图像;在右侧的图像中,我们将 aspect
设置为 2.0
,结果呈现出一个更为高大的图像。
extent
参数除了使用 aspect
参数外,我们还可以使用 extent
参数来设置图像的大小和位置。extent
参数接受一个四元组 (left, right, bottom, top)
,其中 left
和 right
表示图像在 X 轴上的最小值和最大值,bottom
和 top
表示图像在 Y 轴上的最小值和最大值。
当使用 extent
参数时,我们可以将 aspect
设置为 auto
,这将会让 Matplotlib 根据 extent
的值自动计算纵横比。
import matplotlib.pyplot as plt
import numpy as np
# 创建一个 2x2 的图像数组
img_array = np.random.rand(20, 20)
# 使用 extent 参数更改图像大小和位置,不设置 aspect 参数
plt.subplot(121)
plt.imshow(img_array, extent=[0, 10, 0, 20])
plt.title('Extent = [0, 10, 0, 20]')
plt.subplot(122)
plt.imshow(img_array, extent=[0, 10, 0, 5])
plt.title('Extent = [0, 10, 0, 5]')
plt.show()
输出:
在上面的例子中,我们使用 extent
参数来设置图像的大小和位置。在左侧的图像中,我们设置 extent
为 [0, 10, 0, 20]
,这使得图像宽度为 10,高度为 20。在右侧的图像中,我们设置 extent
为 [0, 10, 0, 5]
,这使得图像宽度为 10,高度为 5。
在本教程中,我们介绍了如何在 Matplotlib 中更改 imshow
的纵横比。我们可以使用 aspect
参数手动设置纵横比,也可以使用 extent
参数来设置图像的大小和位置。