擅长:python、mysql、java
<p>实际上,你想要的很简单。。。您只需要确保轴上的<code>adjustable</code>设置为<code>'box'</code>,并且轴的纵横比是设置好的(除了<code>'auto'</code>之外的任何轴)。</p>
<p>创建子块时,可以使用<code>adjustable</code>kwarg来完成此操作。或者,您可以在它们创建后通过调用<code>ax.set_adjustable('box')</code>,或者通过调用<code>ax.set_aspect(aspect, adjustable='box')</code>(其中aspect是<code>'equal'</code>或一个数字)来执行此操作。</p>
<p>现在,无论数字大小如何调整,子块都将保持相同的纵横比。</p>
<p>例如:</p>
<pre><code>import matplotlib.pyplot as plt
fig = plt.figure()
ax1 = fig.add_subplot(2,1,1, adjustable='box', aspect=0.3)
ax2 = fig.add_subplot(2,1,2)
ax1.plot(range(10))
ax2.plot(range(10))
plt.show()
</code></pre>
<hr/>
<p>现在,比较顶部子块对大小调整的响应方式与底部子块的响应方式:</p>
<hr/>
<p>最初的情节
<img src="https://i.stack.imgur.com/0lPbl.png" alt="alt text"/></p>
<p>调整为垂直布局:
<img src="https://i.stack.imgur.com/lv2Q0.png" alt="alt text"/></p>
<p>调整为水平布局:
<img src="https://i.stack.imgur.com/vB5BD.png" alt="alt text"/></p>