2015-12-01 61 views
0

我有一堆我想變成動畫的PNG。我爲此使用matplotlib。我可以在屏幕上顯示生成的動畫,一切都很美好。但保存的MP4只是一個空白。我的意思是我可以播放它,但它只是顯示一個白色的,沒有特色的窗口。任何想法我做錯了什麼?下面的代碼:matplotlib動畫產生一個空白

import matplotlib 
matplotlib.use('TKAgg') 
import pylab as pyl 
import matplotlib.pyplot as pplt 
import matplotlib.image as mplimg 
import matplotlib.animation as mplanim 

myimages = [] 

for k in range(1,100): 
    fname = "data{0:03d}.png".format(k) 
    img = mplimg.imread(fname) 
    imgplot = pplt.imshow(img) 
    myimages.append([imgplot]) 

fig = pyl.figure() 

myanim = mplanim.ArtistAnimation(fig, myimages, interval=20, 
            blit=True, repeat_delay=1000) 


myanim.save("anim.mp4", fps=10) 

pyl.show() 

UPDATE:移動fig = pyl.figure()到代碼的頂部,進口可以解決問題之後。如果有人知道爲什麼,隨時告訴!謝謝。

+0

嘗試設置blit = False。 –

+0

@Mike Muller謝謝,但結果是一樣的。 –

+0

直接使用[FFmpeg](https://trac.ffmpeg.org/wiki/Create%20a%20video%20slideshow%20from%20images)'ffmpeg -framerate 1 -i data%03d.png -r 10' –

回答

0

糾正這一行:

myimages.append([imgplot]) 

到:

myimages.append(imgplot) 

,看看它是否工作。

+0

感謝您的所有努力。但是,它根本就不喜歡那樣。 ArtistAnimation返回一個錯誤「TypeError:'AxesImage'對象不可迭代」 –