Matplotlib中tight_layout()首次调用无效,复用窗口/二次调用正常的问题
问题:Spyder+Qt绘图后端下首次调用
fig.tight_layout()无效,控制台调用正常 - 使用Spyder搭配Qt作为绘图后端,在脚本中绘制子图后调用
fig.tight_layout(),首次执行时该方法无法生效 - 但在IPython控制台中针对同一个
fig实例再次调用fig.tight_layout(),可以正常调整布局 - 推测原因是Qt处理绘图请求存在延迟(图形窗口需等脚本执行完毕才会显示),核心矛盾点:
tight_layout()仅在图形已显示在屏幕上时有效,新创建的图形调用无效;但复用同一图形窗口名称再次运行脚本或从控制台调用则正常
解决方案
使用plt.subplots()创建子图时直接指定tight_layout=True参数即可解决问题,代码示例:
fig, axs = plt.subplots(tight_layout=True)
内容的提问来源于stack exchange,提问作者Konstantin Beliaev
相关产品推荐
相关产品推荐

