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

网站工作沟通及建设我对网络营销的理解

网站工作沟通及建设,我对网络营销的理解,山西建立网站营销策划,手机老是下载一些做任务的网站Python库matplotlib之六 动画FuncAnimation构造器成员函数应用例子 动画 Matplotlib基于其绘图功能,还提供了一个使用动画模块,生成动画的接口。动画是一系列帧,其中每个帧对应于图形上的一个图。 Matplotlib使用两个类来实现动画&#xff…

Python库matplotlib之六

  • 动画
    • FuncAnimation
      • 构造器
      • 成员函数
      • 应用例子

动画

Matplotlib基于其绘图功能,还提供了一个使用动画模块,生成动画的接口。动画是一系列帧,其中每个帧对应于图形上的一个图。

Matplotlib使用两个类来实现动画, 它们分别是

  • FuncAnimation:生成第一帧的数据,然后修改每一帧的数据以创建动画图。这个类在速度和内存方面更加高效,因为它绘制一次artist,然后对其进行修改
  • ArtistAnimation:生成将在动画中的每个帧中进行绘制的artist列表(可迭代)。这个类很灵活,因为它允许任何可迭代的artist按序列进行动画处理。

FuncAnimation

构造器

词法:matplotlib.animation.FuncAnimation(fig, func, frames=None, init_func=None, fargs=None, save_count=None, *, cache_frame_data=True, **kwargs)

FuncAnimation是TimedAnimation的子类,它通过重复调用函数func来制作动画。

参数说明

  • fig,该参数类型是Figure
    fig是一个Figure对象,用于获取所需事件,例如绘制或调整大小。

  • func,该参数类型是callable
    func参数是一个函数,每一帧都需要调用该函数。该函数的第一个参数将是frames参数的下一个值。任何其他位置参数,都可以使用 functools.partial 或通过 fargs 参数提供。

    def func(frame, *fargs) -> iterable_of_artists
    

    使用 functools.partial 提供参数通常更方便。通过这种方式,也可以传递关键字参数。要传递具有位置参数和关键字参数的函数,将所有参数设置为关键字参数,只需保留frame参数未设置:

    blit == True,则 func 必须返回所有已修改或创建的artists的可迭代对象。blitting算法使用此信息来确定必须更新图形的哪些部分。
    blit == False,则返回值不被使用,并且在这种情况下可以被省略。

  • frames,该参数类型是iterable, int, generator函数, 或None, 是可选的
    frames是传递给函数func的数据源,动画每一帧数据
    如果frames是iterable,则只需使用提供的值即可。如果 iterable 有长度,它将盖写save_count kwarg。
    如果frames是整数,则相当于传递range(frames)
    如果frames是生成器函数,则必须具有下列形式:

    def gen_function() -> obj
    

    如果frames是None,则相当于传递 itertools.count。
    在所有参数类型情况下,frames中的值只是简单地传递给用户提供的函数,因此可以是任何类型。

  • init_func,该参数类型是callable, 是可选的
    init_func是用于绘制清晰框架的函数。如果未给出,则将使用帧序列中第一项的绘制结果。该函数将在第一帧之前调用一次。该函数具有下列形式

    def init_func() -> iterable_of_artists
    

    blit == True,则 init_func 必须返回要重新绘制的artists的可迭代对象。blitting算法使用此信息来确定必须更新图形的哪些部分。
    blit == False,则返回值不被使用,并且在这种情况下可以被省略。

  • fargs,该参数类型是tuple,或None, 是可选的
    参数fargs是每次调用 func 的附加参数。使用functools.partial更好。

  • save_count,该参数类型是int, 是可选的
    从frames到缓存的值的数量。仅当无法从frames推断出帧数量时,才使用此方法,即当它是没有长度的迭代器或生成器时。

  • interval,该参数类型是int, 默认值为200
    帧之间以毫秒为单位的延迟。

  • repeat_delay,该参数类型是int, 默认值为0
    如果参数repeat为 True,则该参数是连续动画运行之间以毫秒为单位的延迟。

  • repeat,该参数类型是bool, 默认值为True
    该参数确定,当帧序列完成时,是否重复动画。

  • blit,该参数类型是bool, 默认值为False
    blit确定是否使用位块传输来优化绘图。使用 blitting 时,任何动画artists都将根据其 zorder 进行绘制;然而,无论他们的zorder如何,他们都会被绘制在任何以前的artists之上。

  • cache_frame_data,该参数类型是bool, 默认值为True
    cache_frame_data确定是否缓存帧数据。当帧包含大型对象时,禁用缓存可能会有所帮助。

成员函数

成员函数说明
_init_ (fig, func[, frames, init_func, …])
new_frame_seq()返回新的帧信息序列。
new_saved_frame_seq()返回已保存/缓存的帧信息的新序列。
pause()暂停动画。
resume()恢复动画。
save(filename[, writer, fps, dpi, codec, …])通过绘制每一帧,将动画保存为电影文件。
to_html5_video([embed_limit])将动画转换为 HTML5 <video> 标记。
to_jshtml([fps, embed_frames, default_mode])生成动画的 HTML 表示形式。

应用例子

这个例子是一个抛物线演示动画,通过不断调用函数update,演示不同的帧。

import matplotlib.pyplot  as plt
import matplotlib.animation as animation
import numpy as npdef update(frame):global t, z, scat, line2if frame < 39:print("frame: {0}".format(frame), end=",")else:print("frame: {0}".format(frame))# for each frame, update the data stored on each artist.x = t[:frame]y = z[:frame]# update the scatter plot:data = np.stack([x, y]).Tscat.set_offsets(data)# update the line plot:line2.set_xdata(t[:frame])line2.set_ydata(z2[:frame])return (scat, line2)if __name__ == "__main__":global t, z, scat, line2fig, ax = plt.subplots()t = np.linspace(0, 3, 40)g = -9.81v0 = 12z = g * t**2 / 2 + v0 * tv02 = 5z2 = g * t**2 / 2 + v02 * tscat = ax.scatter(t[0], z[0], c="r", s=5, label=f'v0 = {v0} m/s')line2 = ax.plot(t[0], z2[0], label=f'v0 = {v02} m/s')[0]ax.set(xlim=[0, 3], ylim=[-4, 8], xlabel='Time [s]', ylabel='Z [m]')ax.legend()ani = animation.FuncAnimation(fig=fig, func=update, frames=40, interval=30, repeat=False)plt.show()

上述程序运行产生的屏幕输出

C:\>python animation_1.py
frame: 0,frame: 0,frame: 1,frame: 2,frame: 3,frame: 4,frame: 5,frame: 6,frame: 7,frame: 8,frame: 9,frame: 10,frame: 11,frame: 12,frame: 13,frame: 14,frame: 15,frame: 16,frame: 17,frame: 18,frame: 19,frame: 20,frame: 21,frame: 22,frame: 23,frame: 24,frame: 25,frame: 26,frame: 27,frame: 28,frame: 29,frame: 30,frame: 31,frame: 32,frame: 33,frame: 34,frame: 35,frame: 36,frame: 37,frame: 38,frame: 39

在这里插入图片描述

http://www.shuangfujiaoyu.com/news/3678.html

相关文章:

  • 外包网站建设是什么意思百度指数网页版
  • 做公司宣传册的网站简阳seo排名优化课程
  • djang新闻网站开发seo商城
  • 四川专业网站建设公司可以搜索任何网站的浏览器
  • 企业的网站用vue做的seo是什么简称
  • 揭阳网站制作怎样百度网站推广价格
  • 石狮网站开发app推广平台
  • 沈阳做网站的互联网公司常州网站建设优化
  • 做模板网站的公司市场营销活动策划方案
  • 充值网站建设网站优化效果
  • 阿里巴巴国际站做2个网站有用草莓永久地域网名入2022
  • 湛江市品牌网站建设怎么样常用的网络推广手段有哪些
  • 做响应式网站的菜单hao123文件在哪里
  • 网站流量下降原因长沙网站建设
  • 马关县网站建设百度推广登录入口电脑
  • 厦门网站建设和人才库建设想做游戏推广怎么找游戏公司
  • 电脑系统网站建设企业如何进行网站推广
  • 做最好的在线看片网站广州网页定制多少钱
  • 自己做好网站广州各区最新动态
  • 无锡网站建设优化百度怎么做广告推广
  • 郑州网站建设公司排名百度小说排行
  • 做网站有维护费是什么费用郑州网站制作公司
  • 图做的好的网站seo哪家好
  • 网站开发入门看什么有什么推广软件
  • 杭州网站建设索q.4791857005月新冠病毒最新消息
  • 常州网站建设电子网址怎么创建
  • 企业 办公 网站模板天堂tv在线观看
  • 保定网站设计制作公司网络软件开发
  • 服装设计素材网站关键词排名怎么做上去
  • 电子商务主要就业岗位郑州网站建设优化