python 2.7 mac osx交互式绘图与matplotlib无法正常工作

lol*_*ter 1 python graphing numpy matplotlib

这里我发现了这段代码:

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
Run Code Online (Sandbox Code Playgroud)

我得到一个弹出的情节窗口,但没有数据显示,也没有重绘...任何想法我做错了什么?

tac*_*ell 5

您遇到的问题是由于gui mainloops的工作方式.何时绘制调用draw事件都会添加到事件队列中以供主循环处理.如果你尽可能快地添加它们,循环永远不能清除它的队列并实际绘制到屏幕上.

添加一个plt.pause(.1)将暂停循环并允许主循环(冒着拟人化的风险)'抓住它的呼吸'并更新屏幕上的小部件

有关: