You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python matplotlib调用plt.close()无法通过代码关闭绘图窗口问题

问题原因

  • plt.show() 默认开启阻塞模式,代码执行到该位置会暂停,直到手动关闭绘图窗口后,才会继续运行后续的time.sleep(2)、plt.close()逻辑,自然不会触发自动关闭窗口的效果。

修复方案

将plt.show()改为非阻塞模式,同时增加短时间的暂停确保窗口渲染完成即可,修改后代码如下:

import time
import matplotlib.pyplot as plt
# 如果修改后仍有问题,可取消下一行注释切换后端适配IDLE环境
# plt.switch_backend('TkAgg')
fig = plt.figure()
ax = fig.add_subplot()
# 开启非阻塞模式
plt.show(block=False)
# 预留0.1秒确保绘图窗口完全渲染
plt.pause(0.1)
time.sleep(2)
plt.close()
print ("End of script")
  • 非阻塞模式下plt.show()不会卡住后续代码执行,窗口渲染完成后等待2秒就会自动调用plt.close()关闭窗口,符合预期效果。

内容的提问来源于stack exchange,提问作者Menachem

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.07 00:54:03