解決思路:循環(huán)中判斷繪圖窗口是否關(guān)閉,如果關(guān)閉則退出動態(tài)繪圖的循環(huán)
plt生成figure對象時需要指定一個int類型的id(如不指定糯崎,plt內(nèi)部自動生成),可通過該id獲取到figure對象(保存在matplotlib._pylab_helpers.Gcf.figs),當(dāng)窗口關(guān)閉時慰技,plt保存的id會被清除,通過判斷id是否存在則可以判斷窗口是否關(guān)閉
兩種情況如下组砚,具體見注釋
使用plt繪圖
from matplotlib import pyplot as plt
'''
使用plt繪圖,只會有一個窗口
因此可以通過判斷id數(shù)目是否為0來判斷繪圖窗口是否關(guān)閉
'''
plt.plot() #需要在循環(huán)外面生成繪圖窗口
while True:
if len(plt.get_fignums())==0:
break
#進(jìn)行更新數(shù)據(jù)和繪圖操作
#...
else:
plt.show()
使用figure面向?qū)ο罄L圖
import matplotlib.pyplot as plt
'''
plt.figure()生成fig時指定id吻商,直接通過id是否存在即可判斷
如果不指定id,也可通過fig.canvas.manager.num
順便一提糟红,直接使用plt繪圖時的fig對象可以通過plt.gcf()獲取
因此也可獲取其id后通過這種方法判斷
'''
figID=1
fig=plt.figure(figID)
while True:
if not plt.fignum_exists(figID):
break
#進(jìn)行更新數(shù)據(jù)和繪圖操作
#...
else:
plt.show()