Python中的图形绘制简单动画实操

 更新时间:2022年02月21日 16:03:37   作者:来西瓜  
这篇文章主要介绍了Python中的图形绘制简单动画实操, Matplotlib 是一个非常广泛的库,它也支持图形动画,动画工具以 matplotlib.animation 基类为中心,它提供了一个框架,围绕该框架构建动画,下面来看看具体的实现过程吧,需要的小伙伴可以参考一下

前言:

      Matplotlib 是一个非常广泛的库,它也支持图形动画。 动画工具以 matplotlib.animation 基类为中心,它提供了一个框架,围绕该框架构建动画功能。 主要接口有TimedAnimationFuncAnimation,两者中FuncAnimation是最方便使用的。

1、画螺旋曲线代码

import matplotlib.pyplot as plt
import matplotlib.animation as animation
import numpy as np
  
# create a figure, axis and plot element
fig = plt.figure()
ax = plt.axes(xlim=(-50, 50), ylim=(-50, 50))
line, = ax.plot([], [], lw=2)
  
# initialization function
def init():
    # creating an empty plot/frame
    line.set_data([], [])
    return line,
  
# lists to store x and y axis points
xdata, ydata = [], []
  
# animation function
def animate(i):
    # t is a parameter
    t = 0.1*i
      
    # x, y values to be plotted
    x = t*np.sin(t)
    y = t*np.cos(t)
      
    # appending new points to x, y axes points list
    xdata.append(x)
    ydata.append(y)
      
    # set/update the x and y axes data
    line.set_data(xdata, ydata)
      
    # return line object
    return line,
      
# setting a title for the plot
plt.title('A growing coil!')
# hiding the axis details
plt.axis('off')
  
# call the animator    
anim = animation.FuncAnimation(fig, animate, init_func=init,
                               frames=500, interval=20, blit=True)
  
# save the animation as mp4 video file
anim.save('animated_coil.mp4', writer = 'ffmpeg', fps = 30)
  
# show the plot
plt.show()

2、输出​ ​

此图为动画截图。

3​、代码的部分解释

    现在让我们来逐段分析代码:

fig = plt.figure()
ax = plt.axes(xlim=(-50, 50), ylim=(-50, 50))
line, = ax.plot([], [], lw=2)
  •     1)首先创建一个图形,即所有子图的顶级容器。
  •     2)然后创建一个轴元素 ax 作为子图。 在创建轴元素时还定义了 x 和 y 轴的范围/限制。
  •     3)最后,创建名为 line, 的 plot 元素。 最初,x 和 y 轴点已定义为空列表,线宽 (lw) 已设置为 2。
def init():
    line.set_data([], [])
    return line,
  •     4)声明一个初始化函数 init 。 动画师调用此函数来创建第一帧。
def animate(i):
    # t is a parameter
    t = 0.1*i


    # x, y values to be plotted
    x = t*np.sin(t)
    y = t*np.cos(t)


    # appending new points to x, y axes points list
    xdata.append(x)
    ydata.append(y)
    
    # set/update the x and y axes data
    line.set_data(xdata, ydata)


    # return line object
    return line,
  •     5)这是上述程序最重要的功能。animate() 函数被动画师一次又一次地调用来创建每一帧。 调用此函数的次数由帧数决定,该帧数作为帧参数传递给动画师。
  •     6)animate() 函数以第 i 个帧的索引作为参数。
t = 0.1*i
  •     7)我们巧妙地使用了当前帧的索引作为参数!
x = t*np.sin(t)
y = t*np.cos(t)
  •     8)由于有了参数 t,可以轻松地绘制任何参数方程。 例如,使用参数方程绘制螺旋线。
line.set_data(xdata, ydata)
return line,
  •     9)使用set_data() 函数设置 x 和 y 数据,然后返回绘图对象 line, 。
anim = animation.FuncAnimation(fig, animate, init_func=init, frames=500, interval=20, blit=True)

  •     10)创建 FuncAnimation 对象 anim

它需要下面解释的各种参数:

  •     fig:要绘制的图形。
  •     animate:为每一帧重复调用的函数。
  •     init_func:函数用于绘制清晰的框架。它在第一帧之前被调用一次。
  •     frames:帧数。
  •     interval:帧之间的持续时间。
  •     blit:设置 blit=True 意味着只会绘制那些已经改变的部分。

到此这篇关于Python中的图形绘制简单动画实操的文章就介绍到这了,更多相关Python中的图形绘制动画内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • 使用Python为中秋节绘制一块美味的月饼

    使用Python为中秋节绘制一块美味的月饼

    这篇文章主要介绍了使用Python为中秋节绘制一块美味的月饼,,非常不错,具有一定的参考借鉴价值,需要的朋友可以参考下
    2019-09-09
  • Django基于Models定制Admin后台实现过程解析

    Django基于Models定制Admin后台实现过程解析

    这篇文章主要介绍了Django基于Models定制Admin后台实现过程解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-11-11
  • python实现商品进销存管理系统

    python实现商品进销存管理系统

    这篇文章主要为大家详细介绍了python实现商品进销存管理系统,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-05-05
  • Python创建系统目录的方法

    Python创建系统目录的方法

    这篇文章主要介绍了Python创建系统目录的方法,实例分析了Python操作目录的技巧,具有一定参考借鉴价值,需要的朋友可以参考下
    2015-03-03
  • python利用socketserver实现并发套接字功能

    python利用socketserver实现并发套接字功能

    这篇文章主要为大家详细介绍了python利用socketserver实现并发套接字功能,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-01-01
  • python实现微信自动回复功能

    python实现微信自动回复功能

    这篇文章主要为大家详细介绍了使用python实现微信自动回复功能,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-04-04
  • Pandas分组聚合之使用自定义函数方法transform()、apply()

    Pandas分组聚合之使用自定义函数方法transform()、apply()

    Pandas具有很多强大的功能,transform就是其中之一,利用它可以高效地汇总数据且不改变数据行数,下面这篇文章主要给大家介绍了关于Pandas分组聚合之使用自定义函数方法transform()、apply()的相关资料,需要的朋友可以参考下
    2023-01-01
  • 一篇文章学会两种将python打包成exe的方式

    一篇文章学会两种将python打包成exe的方式

    最近有部分小伙伴问我,python 写的项目可不可以打包成exe程序,放到没有python环境上的电脑中执行? 答案当然是可以的,下面这篇文章主要给大家介绍了如何通过一篇文章学会两种将pyton打包成exe的方式,需要的朋友可以参考下
    2021-11-11
  • python模拟斗地主发牌

    python模拟斗地主发牌

    这篇文章主要为大家详细介绍了python模拟斗地主发牌,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2020-04-04
  • Python实现的微信红包提醒功能示例

    Python实现的微信红包提醒功能示例

    这篇文章主要介绍了Python实现的微信红包提醒功能,结合实例形式分析了Python使用微信模块itchat实现微信红包提醒操作的相关实现技巧,需要的朋友可以参考下
    2019-08-08

最新评论