正在发生奇怪的事情。 我要通过多次单击“调整”->“紧密布局”来交互式更改图形显示后的紧密度。我知道我可以复制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