我有几个用 imshow 绘制的 numpy 数组。它们都具有相同的垂直尺寸,但水平尺寸不同。我想将方面调整为非标量并与我的水平尺寸(x 轴)成比例。 为了以不同的方式表述,我有 numpy 数组 A,它是 100x200,numpy 数组 B 是 100x300。我希望在我的子图中,数组 B 的 x 轴比数组 A 长三倍。
imshow中的aspect值只取标量值,当然我的比例不是整数。我尝试过调整子图大小,但到目前为止没有成功。 换句话说,我希望 imshow 中的方面值等于我的二维数组 shape[1]/shape[0] 的比率。对于非标量。
您可以设置
width_ratios
调用的
plt.subplots()
参数:
import numpy as np
import matplotlib.pyplot as plt
arr1 = np.random.rand(100, 200)
arr2 = np.random.rand(100, 300)
fig, (ax1, ax2) = plt.subplots(ncols=2, width_ratios=[arr1.shape[1], arr2.shape[1]])
ax1.imshow(arr1, aspect="equal")
ax2.imshow(arr2, aspect="equal")
plt.show()