参考
知乎:把数据摇起来
知乎:可视化也能秀,教你用Python制作GIF动图
40行Python制作超炫酷动态排序图,有了它高逼格PPT再也不愁!
卧槽,还能这么玩!用Python生成动态PPT
实例:对sin(2* pi*t)生成动态gif图
python代码
利用matplotlib和moviepy库
import matplotlib.pyplot as plt
import numpy as np
from moviepy.video.io.bindings import mplfig_to_npimage
import moviepy.editor as mpy
# 用matplotlib绘制一个图形
duration = 2
fig_mpl, ax = plt.subplots(1,figsize=(5,3), facecolor='white')
fs=20
xx=lambda d:np.array(range(int(d*fs)+1))/fs
zz=lambda d:np.sin(2*np.pi*xx(d))
ax.set_title("sin(t)")
ax.set_xlabel("t")
ax.set_ylim(-1.5,1.5)
ax.set_xlim(0,2)
line, = ax.plot(xx(0),zz(0), lw=3)
# 用MoviePy制作动(为每个t更新曲面)。制作一个GIF
def make_frame_mpl(t):
line.set_xdata(xx(t))
line.set_ydata(zz(t) ) # 更新曲面
return mplfig_to_npimage(fig_mpl) # 图形的RGB图像
animation =mpy.VideoClip(make_frame_mpl, duration=duration)
animation.write_gif("sinc_mpl.gif", fps=20)