从here我找到了这段代码:
import random
from matplotlib import pyplot as plt
import numpy as np
plt.ion() # interactive mode
ydata = [0] * 50
# make plot
ax1 = plt.axes()
line, = plt.plot(ydata)
plt.ylim([0, 100]) # set the y-range
while True:
randint = int(random.random() * 100)
ymin = float(min(ydata)) - 10
ymax = float(max(ydata)) + 10
plt.ylim([ymin,ymax])
ydata.append(randint)
del ydata[0]
line.set_xdata(np.arange(len(ydata)))
line.set_ydata(ydata) # update data
plt.draw() # update plot
我得到一个弹出的情节窗口,但没有数据显示,没有任何内容被重新绘制......任何想法我做错了什么?
答案 0 :(得分:5)
您遇到的问题是由于gui mainloops的工作方式。当您绘制调用draw
事件时,会将事件添加到事件队列中以供主循环处理。如果你尽可能快地添加它们,循环就永远不会清除它的队列并实际绘制到屏幕上。
添加plt.pause(.1)
将暂停循环并允许主循环(冒着拟人化的风险)'抓住它的呼吸'并更新屏幕上的小部件
相关: