如何在不拉伸图像的情况下更改 matplotlib 中 imshow 的比例?

要在不拉伸图像的情况下更改 matplotlib 中imshow的比例,我们可以采取以下步骤。

步骤

  • 设置图形大小并调整子图之间和周围的填充。

  • 创建 4×4 维度的随机数据点。

  • 将数据显示为图像,即在 2D 常规栅格上。

  • 使用 imshow 的extent参数将图像缓冲区像素坐标映射到数据空间坐标系。

  • 接下来,通过提供诸如“aspect=4”之类的值手动设置图像的纵横比,或者使用aspect='auto'让它自动缩放。这将防止拉伸图像。默认情况下,imshow 将绘图的纵横比设置为 1。

  • 要显示图形,请使用Show()方法。

示例

import numpy as np
from matplotlib import pyplot as plt

plt.rcParams["figure.figsize"] = [7.00, 3.50]
plt.rcParams["figure.autolayout"] = True

data = np.random.rand(4, 4)

plt.imshow(data, origin='lower', extent=[-4, 4, -1, 1], aspect=4)

plt.show()
输出结果

它将产生以下输出 -