我的问题的最小版本如下图所示。如何缩放右侧面板使其高度与左侧面板相同?
import matplotlib.pyplot as plt
import numpy as np
rnd = np.random.default_rng(123)
dx1, dy1 = 3, 2
dx2, dy2 = 3, 4
im1 = rnd.random((dy1, dx1))
im2 = rnd.random((dy2, dx2))
fig, (ax1, ax2) = plt.subplots(1, 2)
ax1.imshow(im1)
ax2.imshow(im2)
我可以手动定位这两个图,但我需要一个强大的程序来生成多个相似的图。我查看了
ImageGrid
和 GridSpec
但似乎都不支持我所需要的。我希望 subplots
自动执行我需要的操作,但事实并非如此。这是设计使然吗?
解决方案包括使用
plt.subplots的
width_ratios
关键字
import matplotlib.pyplot as plt
import numpy as np
rnd = np.random.default_rng(123)
dx1, dy1 = 3, 2
dx2, dy2 = 3, 4
im1 = rnd.random((dy1, dx1))
im2 = rnd.random((dy2, dx2))
fig, (ax1, ax2) = plt.subplots(1, 2, width_ratios=[dx1/dy1, dx2/dy2])
ax1.imshow(im1)
ax2.imshow(im2)