Spyder冻结中的动态绘图

时间:2017-03-26 22:28:45

标签: python matplotlib plot spyder

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

处于"功能" 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)

1 个答案:

答案 0 :(得分:1)

在处理像matplotlib绘图窗口这样的GUI元素时,使用time.sleep()是一个坏主意。它确实让应用程序休眠,导致窗口无响应(冻结)。请改用plt.pause()