Spyder 冻结中的动态绘图

dynamical plotting in Spyder freezing

我正在尝试制作一个使用 matplotlib 动态重新绘制数据的框架。 然而,每次我 运行 代码,而不是更新绘图,绘图 window 停止响应,直到代码完成,然后绘制最终图形。

是在"feature"的Spyder中,还是我写错了?是否有任何解决方法,使其真正起作用?

import matplotlib.pyplot as plt
import time as t

def read_data():
    #retrieve the data, whatever

def update_plot(ax):
    time, hw = read_data()
    ax.clear()
    ax.plot(time, hw)

fig_hw = plt.figure()
ax_hw = fig_hw.add_subplot(111)

plt.ion()

for i in range(100):    
    update_plot(ax_hw)
    plt.draw()
    t.sleep(0.1)

在使用 GUI 元素(如 matplotlib 绘图 window 时,使用 time.sleep() 是个坏主意。它实际上让应用程序休眠,导致无响应(冻结)window。请改用 plt.pause()