Вы можете использовать аргументы gridspec height_ratios
и width_ratios
, чтобы установить желаемую пропорцию, которую должны занимать подзаговоры.
В этом случае из-за симметрии это просто форма, например b
.
import numpy as np
import matplotlib.pyplot as plt
a = np.random.rand(20, 20)
b = np.random.rand(20, 5)
c = np.random.rand(5, 20)
d = np.random.rand(5,5)
arrays = [a,b,c,d]
fig, axs = plt.subplots(2, 2, sharex='col', sharey= 'row', figsize=(10,10),
gridspec_kw={"height_ratios" : b.shape,
"width_ratios" : b.shape})
for ax, ar in zip(axs.flatten(), arrays):
ax.imshow(ar)
plt.show()
Или, в более общем смысле,
gridspec_kw={"height_ratios" : [a.shape[0], c.shape[0]],
"width_ratios" : [a.shape[1], b.shape[1]]}