升级Matplotlib

时间:2018-03-08 22:37:33

标签: python matplotlib ffmpeg

我最近将我的matplotlib python包更新到2.2.0版本,现在一些以前工作的代码来保存动画不起作用。代码不是保存动画,而是以特定的迭代次数冻结。当我设法关闭命令窗口时,它对中断没有响应并抛出PyEval_RestoreThread致命错误。

我正在使用Enthought Canopy。代码仍然可以正常使用其他版本的python和matplotlib。

我可以用这个来复制问题:

import matplotlib.pyplot as plt
import matplotlib.animation as animation
import numpy as np

SIZE = 128
fig, ax = plt.subplots()

ims = ax.imshow(np.random.rand(SIZE, SIZE))

i = 0
def update_animation(*args):
    global i
    i = i + 1
    image = np.random.rand(SIZE, SIZE)
    ims.set_data(image)
    print "Iteration "+str(i)

F_NAME = "anim_test.mp4"
NUM_ITERS = 1000
FFwriter = animation.FFMpegWriter(fps=6, bitrate=500)
anim=animation.FuncAnimation(fig,update_animation,frames=NUM_ITERS,blit=False, repeat=False, interval=200)
anim.save(F_NAME, writer=FFwriter)    
print "saved animation to " + F_NAME

更改bitrate参数会更改程序暂停的帧数。对于比特率= 500,它在第46帧周围停止。

如何在保存所有帧之前停止pyplot冻结?

修改
我的系统详情:
Python 2.7.6 64位Enthought Canopy
Windows 8
8GB RAM
ffmpeg版本N-79075-ga7b8a6e

0 个答案:

没有答案