当前位置: 首页 > news >正文

python画图|曲线动态输出基础教程

在前述学习过程中,已经掌握基本的曲线图像画法,并尝试探索过3D动画基础教程。

相关文章可以通过下述链接直达:

python画三角函数图|小白入门级教程_正余弦函数画图python-CSDN博客

python动画教程|Animations using Matplotlib-官网教程程序解读_如何用python制作微动画-CSDN博客

在此基础上,我们尝试对曲线进行动态输出,效果如下:

cfed9ef9a8ee4ab987c5c944fe09aa3e.gif

图1

【1】官网教程

打开下述链接,直达官网教程:

Animated line plot — Matplotlib 3.9.2 documentation

教程简洁高效,为此进行了注解。

【2】代码解读

首先引入关键模块numpy和matplotlib:

import matplotlib.pyplot as plt #引入画图模块
import numpy as np #引入计算模块import matplotlib.animation as animation #引入动画制作模块

然后定义画图和变量:

fig, ax = plt.subplots() #定义画图x = np.arange(0, 2*np.pi, 0.01) #定义自变量
line, = ax.plot(x, np.sin(x)) #定义因变量

之后定义一个函数,用于动态输出Y轴数值:

def animate(i): #自定义函数line.set_ydata(np.sin(x + i / 50))  # update the data. 更新Y轴数据,实现动态输出return line,

然后调用动画模块制作动画:

ani = animation.FuncAnimation( #绘制动画fig, animate, interval=20, blit=True, save_count=50)

最后直接输出图形:

plt.show() #输出图形

【3】代码改写

实际上,上述代码输出的结果不能直接保存。但程序上自带了一些注释:

# To save the animation, use e.g.
#
# ani.save("movie.mp4")
#
# or
#
# writer = animation.FFMpegWriter(
#     fps=15, metadata=dict(artist='Me'), bitrate=1800)
# ani.save("movie.mp4", writer=writer)

为此我们尝试直接新增一行代码:

ani.save("movie.mp4")

实际结果却是报错:

e2e4ab2c3d4a4a5c9505b9a8756f9457.png

图2

经过尝试,改为下述代码:

ani.save('animations.gif')

可以发现输出成功,没有报错。

【4】代码优化

为了优化表达效果,增加输出曲线,定义line1:

x = np.arange(0, 2*np.pi, 0.01) #定义自变量
line, = ax.plot(x, np.sin(x)) #定义因变量
line1, = ax.plot(x, np.cos(x)) #定义因变量

然后自定义函数跟随更新:

def animate(i): #自定义函数line.set_ydata(np.sin(x + i / 50))  # update the data. 更新Y轴数据,实现动态输出line1.set_ydata(np.cos(x + i / 50))  # update the data. 更新Y轴数据,实现动态输出return line,line1

输出结果更新为:

35ae251dfbb5479f91cf2dc6c162e2f1.gif

图3

此时的完整代码为:

import matplotlib.pyplot as plt #引入画图模块
import numpy as np #引入计算模块import matplotlib.animation as animation #引入动画制作模块fig, ax = plt.subplots() #定义画图x = np.arange(0, 2*np.pi, 0.01) #定义自变量
line, = ax.plot(x, np.sin(x)) #定义因变量
line1, = ax.plot(x, np.cos(x)) #定义因变量def animate(i): #自定义函数line.set_ydata(np.sin(x + i / 50))  # update the data. 更新Y轴数据,实现动态输出line1.set_ydata(np.cos(x + i / 50))  # update the data. 更新Y轴数据,实现动态输出return line,line1ani = animation.FuncAnimation( #绘制动画fig, animate, interval=20, blit=True, save_count=50)
#ani.save('animation.MP4', writer='imagemagick') #保存动画
ani.save('animations.gif') #保存动画
# To save the animation, use e.g.
#
# ani.save("movie.mp4")
#
# or
#
# writer = animation.FFMpegWriter(
#     fps=15, metadata=dict(artist='Me'), bitrate=1800)
# ani.save("movie.mp4", writer=writer)
#writer = animation.FFMpegWriter(#fps=15, metadata=dict(artist='Me'), bitrate=1800)
#ani.save("movie.mp4", writer=writer)plt.show() #输出图形

【5】总结

学习了使用python实线动画曲线输出的技巧,并且掌握了gif动画保存技巧和多条曲线同时输出技巧。

 


http://www.mrgr.cn/news/45078.html

相关文章:

  • 什么是安全运营中心 SOC?
  • 第三课 Vue中的方法的定义及事件绑定指令
  • 线性代数入门指南
  • 『网络游戏』制作提示弹窗UI【03】
  • 线性代数入门
  • 正确理解协程
  • 读数据工程之道:设计和构建健壮的数据系统02数据工程师
  • 【星闪开发连载】SLE_UUID_Server和SLE_UUID_Client程序测试
  • 『网络游戏』制作加载进度UI【04】
  • <<迷雾>> 第 9 章 计算机时代的开路先锋 示例电路
  • AI学习指南深度学习篇-生成对抗网络的基本原理
  • SIE将使用AI和机器学习加速游戏开发
  • Python软体中使用NLTK进行文本分析
  • 鸟类数据集,鸟数据集,目标检测class:bird,共一类13000+张图片yolo格式(txt)
  • Python爬虫实战--Day03
  • 玩客云刷派享云教程
  • 『网络游戏』动态界面制作创建角色UI【02】
  • PGMP-01概述2
  • Bianchi模型、python计算及ns3验证_关于2~10 STA验证的补充
  • Python读写文件基础操作