Python 2.7版的Mac OSX交互式绘图与matplotlib不工作(python 2.7

2019-10-18 17:05发布

从这里 ,我发现这样的代码:

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

我收到弹出一个绘图窗口,但似乎没有数据没有东西重绘...任何想法,我做错了什么?

Answer 1:

你遇到的问题是由于GUI mainloops的工作方式。 当你过剧情电话draw活动被添加到主循环来处理事件的队列。 如果添加他们尽可能快地循环绝不能明确它的队列和实际绘制到屏幕上。

添加plt.pause(.1)将暂停环路,并允许主循环(在被拟人化的风险)“抓住它的呼吸”和更新部件在屏幕上

有关:

  • Python-1秒地块连续呈现
  • matplotlib QT imshow动画
  • 图GUI冷冻
  • 使matplotlib平局()只显示新点


文章来源: python 2.7 mac osx interactive plotting with matplotlib not working