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()
。
我正在尝试制作一个使用 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()
。