我正在尝试使用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)
答案 0 :(得分:1)
在处理像matplotlib绘图窗口这样的GUI元素时,使用time.sleep()
是一个坏主意。它确实让应用程序休眠,导致窗口无响应(冻结)。请改用plt.pause()
。