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
相关产品推荐
相关产品推荐

