Python绘制和保存动态图(gif或MP4)

只显示,不保存

以下代码即可实现动态地展示图片,但动态图每次只显示新的数据,不会保留旧的数据。

	fig = plt.figure()
    plt.ion()
    plt.show()
    ims = []
	for i in range(1,10):
        im = plt.plot(np.linspace(0, i,10), np.linspace(0, np.random.randint(i),10))
        ims.append(im)
        plt.draw()
        plt.pause(0.2)

保存为gif

以下代码即可实现生成和保存动态图,但动态图每次只显示新的数据,不会保留旧的数据。

from matplotlib import pyplot as plt
from celluloid import Camera

fig = plt.figure()
camera = Camera(fig)
for i in range(10):
    plt.plot([i] * 10)
    camera.snap()
animation = camera.animate()
animation.save('celluloid_minimal.gif')

参考链接


保存gif或MP4文件

以下代码即可实现生成和保存动态图,但动态图每次只显示新的数据,不会保留旧的数据。

import matplotlib.animation as animation
import matplotlib.pyplot as plt
ims = []
fig = plt.figure()
for i in range(1,10):
	im = plt.plot(np.linspace(0, i,10), np.linspace(0, np.random.randint(i),10))
    # 绘制散点图时,比较特殊需要调用findobj:im = plt.scatter(1,1).findobj()
    ims.append(im)
ani = animation.ArtistAnimation(fig, ims, interval=500, repeat_delay=1000)
# ani.save("test.gif", writer='pillow')

Writer = animation.writers['ffmpeg']  # 需安装ffmpeg
writer = Writer(fps=15, metadata=dict(artist='Me'), bitrate=1800)
ani.save("movie.mp4",writer=writer)

参考链接
保存为mp4

你可能感兴趣的:(Python绘制和保存动态图(gif或MP4))