使用matplotlib绘制动画

使用matplotlib绘制动画的步骤

本文采用moviewriter来绘制,避免采用matplotlib.animition的动画绘制方法,将动画简化为图片一帧一帧播放。

使用总共三步,如下代码所示。

补充说明: 在具体使用代码的时候,有时候会出现 subprocess的Error, 这是因为没有指定 ffmpeg_bin的路径,因而,需要特别注意 以下两句:

ffmpegpath = os.path.abspath("C:/Program Files (x86)/ffmpeg/bin/ffmpeg.exe")
matplotlib.rcParams["animation.ffmpeg_path"] = ffmpegpath
print('ffmpegpath:', FFMpegWriter.bin_path())

关于 matplotlib.animation.FFMpegWriter的介绍的官方文档:
https://www.osgeo.cn/matplotlib/api/_as_gen/matplotlib.animation.FFMpegWriter.html



import numpy as np
import matplotlib, os 
matplotlib.use("Agg")
import matplotlib.pyplot as plt
ffmpegpath = os.path.abspath("C:/Program Files (x86)/ffmpeg/bin/ffmpeg.exe")
matplotlib.rcParams["animation.ffmpeg_path"] = ffmpegpath
from matplotlib.animation import FFMpegWriter

#一, 初始化信息
metadata = dict(title='Movie Test', artist='Matplotlib',
                comment='Movie support!')
writer = FFMpegWriter(fps=15, metadata=metadata)

# 数据准备
fig = plt.figure()
x0, y0 = np.linspace(0, np.pi, 100), np.sin(np.linspace(0, np.pi, 100))

# 二, 类似打开文件一样打开一个视频,500代表精度
with writer.saving(fig, "writer_test.mp4", 500):
    for i in range(100):
        plt.cla() # 注意,清除之前的内容
        plt.xlim(-np.pi, np.pi)
        plt.ylim(-1.5, 1.5)

        x, y = x0[0:i], y0[0:i]
        plt.plot(x, y, c= 'r')
        #三,抓取当前的帧
        writer.grab_frame()
        

效果参考:https://www.bilibili.com/video/av66377656

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值