擅长:python、mysql、java
<p>我认为一个最简单的方法是使用<code>aspect='auto'</code>和{<cd2>}。但这会扭曲形象,以一种可能与你在问题中所展示的不一样的方式。对于没有单个<code>n</code>的情况,它可能不起作用。我不确定我能不能百分之百地帮你,但让我试试这个方法。这里的关键思想是:</p>
<ol>
<li>更改<code>fig</code>的纵横比。准确的比率来自图像数据和子图布局。在</li>
<li>使用紧凑的布局,以消除不必要的轴之间,这可能会偏移您的图形一点。在</li>
</ol>
<p>下面是我的示例代码和图:</p>
<pre><code>import matplotlib.pyplot as plt
from matplotlib.figure import figaspect
import numpy as np
n = 10
x = np.random.rand(n,1)
y = np.random.rand(1,n)
z = np.random.rand(n,n)
width_max = max(s.shape[0] for s in [x, y, z])
height_max = max(s.shape[1] for s in [x, y, z])
row = 1
col = 3
fig, ax = plt.subplots(row, col)
w, h = figaspect(row*width_max/(col*height_max))
fig.set_size_inches(w, h)
ax[0].imshow(x)
ax[1].imshow(z)
ax[2].imshow(y)
plt.tight_layout()
plt.show()
</code></pre>
<p><a href="https://i.stack.imgur.com/H9dVz.png" rel="nofollow noreferrer"><img src="https://i.stack.imgur.com/H9dVz.png" alt="enter image description here"/></a></p>
<p>我希望这能解决你真正的问题。我认为这也适用于以下情况:</p>
^{pr2}$