在从tkinter窗口调用时使用plt.close('all')后,plt.show()冻结的原因是plt.close('all')会关闭所有的matplotlib图形窗口,包括tkinter窗口。因此,当调用plt.show()时,由于tkinter窗口已经关闭,导致plt.show()无法显示图形并冻结。
解决这个问题的方法是在调用plt.close('all')之前,将matplotlib的后端设置为TkAgg,即使用Tkinter作为后端。可以通过以下代码实现:
import matplotlib
matplotlib.use('TkAgg')
import matplotlib.pyplot as plt
这样,在调用plt.close('all')后再调用plt.show()时,就不会冻结了。
另外,关于plt.close('all')的使用,它用于关闭所有的matplotlib图形窗口,可以在绘制多个图形时使用,以释放内存资源。但在使用时需要注意,如果在调用plt.close('all')后还需要显示图形,需要重新绘制图形并调用plt.show()。
领取专属 10元无门槛券
手把手带您无忧上云