实例:对sin(2* pi*t)生成动态gif图

python的如何动态的画图 用python画动态图_python的如何动态的画图

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)