首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Matplotlib动画-如何将它们导出为在演示文稿中使用的格式?

Matplotlib动画-如何将它们导出为在演示文稿中使用的格式?
EN

Stack Overflow用户
提问于 2011-12-16 02:27:17
回答 2查看 11K关注 0票数 6

因此,我学会了如何在matplotlib中制作可爱的小动画。例如,如下所示:

代码语言:javascript
复制
import numpy as np
import matplotlib
import matplotlib.pyplot as plt

plt.ion()

fig = plt.figure() 
ax  = fig.add_subplot(111) 

ax.set_xlim(0, 1)
ax.set_ylim(-2,2)

dt = 0.01
q  = 0.01
t = np.arange(0,1,dt)
x = np.sin(2*np.pi*t)
line, = ax.plot(t,x, '-')
fig.canvas.draw()
for i in xrange(100):
    x = (1-q) * x + q* np.random.normal(size = len(t))
    line.set_ydata(x)
    fig.canvas.draw()

这很有效,而且非常好用。但是我如何使用它来制作一部可以播放的电影,例如,在pdf演示文稿中?我试着做fig.savefig("test.gif"),但是有一个错误消息指出matplotlib不能导出gif。

有没有一种不借助外部工具就能做到这一点的方法(比如制作大量的png并将它们缝合在一起)?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-12-16 03:48:57

简而言之,除了使用外部工具之外,没有其他方法。在1.1.0中有一个新的模块,可以帮助你完成animations并将它们保存为mpeg4格式。它使用外部工具自动执行此转换,从多个帧到单个电影。您可以使用imagemagick的convert或ffmpegmencoder制作gif,这是新的动画模块提供的两个选项。

票数 8
EN

Stack Overflow用户

发布于 2013-02-21 02:07:06

如果您使用matplotlib.animation并在路径中包含类似于FFmpeg的内容,则应该可以这样做:

代码语言:javascript
复制
import numpy as np
import matplotlib
import matplotlib.pyplot as plt
from matplotlib.animation import ArtistAnimation

fig = plt.figure() 
ax  = fig.add_subplot(111) 

ax.set_xlim(0, 1)
ax.set_ylim(-2,2)

dt = 0.01
q  = 0.01
t = np.arange(0,1,dt)
x = np.sin(2*np.pi*t)
images = []

for i in xrange(100):
    x = (1-q) * x + q* np.random.normal(size = len(t))
    line, = ax.plot(t,x, '-')
    images.append((line,))

line_anim = ArtistAnimation(fig, images, interval=50, blit=True)
line_anim.save('my_animation.mp4')
plt.show()

很可爱,是吧?

票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8524841

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档