您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

python – Matplotlib动画要么在几帧后冻结,要么就是不起作用

5b51 2022/1/14 8:22:09 python 字数 2890 阅读 491 来源 www.jb51.cc/python

我一直在努力让这个简单的脚本工作,但我所做的一切似乎都没有帮助.这是对Matplotlib网站上最基本的动画情节示例代码的略微修改,应该只显示几帧噪音(我的网站BTW的未经修改的代码也有同样的问题). 在我的带有TkAgg后端的计算机上,在绘图窗口冻结之前,我得到大约20帧(60个).使用Qt4Agg,我只得到一个冷冻的黑色窗口,并且根本没有绘制帧.我尝试过不同的NumPy,PyQt,Python

概述

在我的带有TkAgg后端的计算机上,在绘图窗口冻结之前,我得到大约20帧(60个).使用Qt4Agg,我只得到一个冷冻的黑色窗口,并且根本没有绘制帧.我尝试过不同的NumPy,PyQt,Python和Matplotlib版本的多种组合,但总能得到相同的结果.

如果这对你有用或者看错了,请告诉我.我很确定这在过去确实有效,所以我认为它可能是Windows问题或与ion()相关的东西.

仅供参考我正在使用Windows 7(32位),我已经使用Python 2.6 / 2.7,MPL 1.0.0 / 0.9.9.8,PyQt 4.6 / 4.7,Numpy 1.4 / 1.5b进行了测试.

import matplotlib
matplotlib.use('TkAgg') # Qt4Agg gives an empty,black window
from pylab import *
import time

ion()
hold(False)

# create initial plot
z = zeros(10)
line,= plot(z)
ylim(-3,3)

for i in range(60):
    print 'frame:',i

    d = randn(10)
    line.set_ydata(d)

    draw()
    time.sleep(10e-3)

这个更简单的版本在前几帧之后也会冻结:

from pylab import *

ion()
hold(False)

for i in range(40):
    plot(randn(10))
    draw()

show()

谢谢!

编辑:这些人似乎和我有相同或类似的问题:

> mail-archive.com/matplotlib-users@lists.sourceforge.net/msg10844.html
> stackoverflow.com/questions/2604119/matplotlib-pyplot-pylab-not-updating-figure-while-isinteractive-using-ipython
> mail-archive.com/matplotlib-users@lists.sourceforge.net/msg01283.html

看起来他们中的任何一个都不能解决它:(

我建议您使用GUI工具包在一定延迟后安排函数调用,而不是坐在带睡眠的循环中.

def update_function():
    # do frame calculation here

refresh_timer = QtCore.QTimer()
QtCore.QObject.connect( refresh_timer,QtCore.SIGNAL('timeout()'),update_function )
refresh_timer.start( 1.0 / 30 ) # have update_function called at 30Hz

查看matplotlib文档表明,本机可能会使用它们的API,但我只能使用快速搜索找不到任何好的示例.

总结

以上是编程之家为你收集整理的python – Matplotlib动画要么在几帧后冻结,要么就是不起作用全部内容,希望文章能够帮你解决python – Matplotlib动画要么在几帧后冻结,要么就是不起作用所遇到的程序开发问题。


如果您也喜欢它,动动您的小指点个赞吧

除非注明,文章均由 laddyq.com 整理发布,欢迎转载。

转载请注明:
链接:http://laddyq.com
来源:laddyq.com
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。


联系我
置顶