通过多次单击“调整”->“紧密布局”,无花果布局以交互方式变得更紧密,但无法在我的代码中复制它

正在发生奇怪的事情。 我要通过多次单击“调整”->“紧密布局”来交互式更改图形显示后的紧密度。我知道我可以复制6个参数,并使用它们将其放入我的代码fig.subplots_adjust()中,但问题是布局发生了变化,但是有些地方参数没有变化!!因此,我无法重现效果... 。在这里,我将向您展示我的意思:

在我的代码中,我在plt.tight_layout()之前是plt.show()

  • 这是我得到的结果:

通过多次单击“调整”->“紧密布局”,无花果布局以交互方式变得更紧密,但无法在我的代码中复制它

  • 现在,我单击“紧凑布局”。参数发生变化,子图看起来越来越大:

通过多次单击“调整”->“紧密布局”,无花果布局以交互方式变得更紧密,但无法在我的代码中复制它

  • 再次,参数改变,子图看起来越来越大:

通过多次单击“调整”->“紧密布局”,无花果布局以交互方式变得更紧密,但无法在我的代码中复制它

  • 再次,子图更近但仅更改了一个参数,并且更改几乎没有意义-顶部为0.950,现在为0.951

通过多次单击“调整”->“紧密布局”,无花果布局以交互方式变得更紧密,但无法在我的代码中复制它

  • 现在,如果我导出值并放在plt.show()之前
    plt.subplots_adjust(
              top=0.95,bottom=0.062,left=0.012,right=0.988,hspace=0.249,wspace=0.0)

我得到:

通过多次单击“调整”->“紧密布局”,无花果布局以交互方式变得更紧密,但无法在我的代码中复制它

这个数字没有我想要的那么紧!而且子图也不像我想要的那么大!我输入了完全相同的参数。有人知道如何解决吗?


重现该问题的玩具示例:

import matplotlib.pyplot as plt
limit = 3
fig,axes = plt.subplots(nrows=limit,ncols=limit,sharex=True,sharey=True,)

for i in range(limit):
    for j in range(limit):
        ax = axes[i,j]
        ax.set_xbound(lower=-2,upper=2)
        ax.set_ybound(lower=-2,upper=2)
        ax.grid()
        ax.set_aspect('equal',adjustable='box')

# show
fig = plt.gcf()
fig.canvas.manager.window.showMaximized()
fig.canvas.set_window_title('Test')
plt.tight_layout() # TODO: comment this line to see the difference if tight layout is not specified

# TODO: uncomment the following block to see that nothing happens if tight layout and the parameters are set
# plt.subplots_adjust(
#   top=0.951,#   bottom=0.062,#   left=0.012,#   right=0.988,#   hspace=0.249,#   wspace=0.0
# )
plt.show()

旁注::我目前正在使用matplotlib 3.1.1

xuxianbing11 回答:通过多次单击“调整”->“紧密布局”,无花果布局以交互方式变得更紧密,但无法在我的代码中复制它

暂时没有好的解决方案,如果你有好的解决方案,请发邮件至:iooj@foxmail.com
本文链接:https://www.f2er.com/3040378.html

大家都在问