Python使用plt库实现绘制动态曲线图并导出为GIF或MP4
更新时间:2024年03月13日 15:39:27 作者:小子挺不错
这篇文章主要为大家详细介绍了Python如何使用plt库实现绘制动态曲线图并导出为GIF或MP4,文中的示例代码讲解详细,需要的可以了解一下
一、绘制初始图像
正常使用plt进行绘图,这里举例一个正弦函数:
二、绘制动态图的每一帧
思路:
- 根据横坐标点数绘制每一帧画面
- 每次在当前坐标处,绘制一个点和垂直的线,来表示当前点
- 可以在点上加个坐标等样式来增加动态效果
实例代码:
import numpy as np import matplotlib.pyplot as plt for i in range(len(x)): plt.figure() x = np.linspace(0, 12, 121) y = np.sin(x) # 绘制垂直横线 plt.vlines(x=x[i], ymin=-1, ymax=1, colors='black', linestyles='dashdot') # 绘制水平横线 plt.hlines(y=0, xmin=0, xmax=12, colors='black', linestyles='solid',linewidths=3) plt.plot(x, y) plt.scatter(x[i],y[i],color='red',s=30) plt.grid(True, linestyle='--', alpha=0.5) plt.savefig(f"./test/{i}.png") plt.show() plt.close()
效果如下:
三、利用imageio库制作视频或者gif
最后,把所有图像绘制成一个动态图或者视频就可以实现了,效果还是客观的。
import imageio # 主要使用imageio这个库 import os def create_gif(image_list, gif_name, duration=0.35): frames = [] for image_name in image_list: frames.append(imageio.imread(image_name)) # 转化成gif imageio.mimsave(gif_name, frames, 'GIF', duration=duration) return def create_video(image_list): filename = 'output3.mp4' filepath = os.path.join(os.getcwd(), filename) frames = [] for image_name in image_list: frames.append(imageio.imread(image_name)) # 将图片转换为视频 fps = 2 # 每秒钟帧数 with imageio.get_writer(filepath, fps=fps) as video: for image in frames: # frame = image.convert('RGB') video.append_data(image) def main(): orgin = './test' # 首先设置图像文件路径 files = os.listdir(orgin) image_list = [] for i in range(len(files)): file_dir = f"{i}.png" path = os.path.join(orgin, file_dir) image_list.append(path) # 创建gif gif_name = 'result.gif' # 设置动态图的名字 duration = 0.2 create_gif(image_list, gif_name, duration) # 创建动态图 # 创建video # create_video(image_list=image_list) if __name__ == '__main__': main()
效果如图:
到此这篇关于Python使用plt库实现绘制动态曲线图并导出为GIF或MP4的文章就介绍到这了,更多相关Python plt绘制动态曲线图内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
相关文章
python解决汉字编码问题:Unicode Decode Error
最近在利用python读取一个含有汉字的文档时导致出现了乱码,并报出了两个错误,无奈只能上网找寻答案,后通过网友的帮助解决了这个问题,想着总结一下,下面这篇文章就主要介绍了python如何解决汉字编码问题,有需要的朋友们可以参考借鉴。2017-01-01Python 使用PIL.Image制作运动小人的动态图思路详解
这篇文章主要介绍了Python 使用PIL.Image制作一个运动小人的动态图,制作过程也很简单,只需要把图片拆分成12等分,每帧大小:67x165;连续读取和播放就会形成动态图像,需要的朋友可以参考下2021-10-10
最新评论