擅长:python、mysql、java
<p>我通过反复试验找到了解决这个问题的办法。然而,应该注意的是,我不知道<code>twinx</code>是如何工作的,我对matplotlib非常熟悉,因此我肯定无法理解正在发生的任何事情</p>
<p>为了解决这个问题,我在创建twinx之前使用了<code>plt.gcf().subplots_adjust()</code>。但是,这样做会有效地破坏新的位置,因此我事先保存了它们,以便在创建<code>twinx</code>之后能够重新应用它们。代码变为:</p>
<pre><code>import matplotlib.pyplot as plt
plt.plot()
plt.gca().set_position([1/3, 1/3, 1/3, 1/3])
pos = plt.gca().get_position() #added line
plt.gcf().subplots_adjust() #added line
plt.gca().twinx()
plt.gca().set_position(pos) #added line
plt.show()
</code></pre>
<p>不过,我仍然愿意阅读一些比我更好的答案,所以请随意给出您的建议</p>
<p><strong>注意</strong>:上面的代码看起来相当愚蠢(我设置位置只是为了重置它,然后稍后重新应用),但在我的实际应用程序中,第一个<code>set_position</code>将由前面的函数调用执行,而后面的函数调用需要添加<code>twinx</code>,因此这确实有一个用例</p>