专栏首页思考是一种快乐matplotlib动画入门(1):基本概念

matplotlib动画入门(1):基本概念

Matplotlib是python的一个图形库,它的动画功能基本上都是基于matplotlib.animation.Animation这个类来开发的。

matplotlib动画主要有两种方法,一种是基于时间的 TimedAnimation ,另一种是基于功能的FuncAnimation

TimedAnimation: 使用一系列的 Artist 对象.

FuncAnimation: 不断地重复调用func函数。

调用方法

matplotlib.animation.FuncAnimation(fig, func, frames=None, init_func=None, fargs=None, save_count=None, **kwargs)

输入参数:

fig : matplotlib.figure.Figure
    The figure object that is used to get draw, resize, and any other needed events.
func : callable
    The function to call at each frame. The first argument will be the next value in frames. Any additional positional arguments can be supplied via the fargs parameter.
    The required signature is:  def func(frame, *fargs) -> iterable_of_artists:
frames : iterable, int, generator function, or None, optional
init_func : callable, optional
fargs : tuple or None, optional
    Additional arguments to pass to each call to func.
save_count : int, optional
    The number of values from frames to cache.

interval : number, optional
    Delay between frames in milliseconds. Defaults to 200.
repeat_delay : number, optional
    If the animation in repeated, adds a delay in milliseconds before repeating the animation. Defaults to None.
repeat : bool, optional
    Controls whether the animation should repeat when the sequence of frames is completed. Defaults to True.
blit : bool, optional
    Controls whether blitting is used to optimize drawing. Defaults to False.

一些重要概念

1. Figure 图像

matplotlib.figure.Figure类.一个画板上可以有多个Figure,每个Figure占一部分区域。比如要画4个图像,那么每个图像在画板上占四分之一的空间。每个Figure都有一个编号,这4个Figure的编号可以是1,2,3,4.

创建一个Figure的方法是:

matplotlib.pyplot.figure(num=None, figsize=None, dpi=None, facecolor=None, edgecolor=None, frameon=True, FigureClass=<class 'matplotlib.figure.Figure'>, clear=False, **kwargs)

输入

num: 整型或字符串,表示figure的编号
figsize: tuple of integers。表示宽和高,单位:inch
dpi:分辨率
facecolor:背景颜色
edgecolor:边框颜色
frameon:是否画边框,默认true
FigureClass: matplotlib.figure.Figure的子类,用于实现自定义的Figure实例。
clear:是否清除已存在的Figure, 默认false

返回:

Figure: Figure实例

2. 坐标 Axes

matplotlib.axes.Axes类。Axes包含了大部分Figure元素,比如坐标轴(Axis)、记号(Tick)、二维线条(Line2D)、文本(Text)、多边形(polygon)等等,以及一系列的坐标系统。

在Figure中创建一个Axes的方法是:

matplotlib.pyplot.axes(arg=None, **kwargs)

输入

arg : None or 4-tuple or Axes
    None: A new full window axes is added using subplot(111, **kwargs)

    4-tuple of floats rect = [left, bottom, width, height]. A new axes is added with dimensions rect in normalized (0, 1) units using add_axes on the current figure.

    Axes: This is equivalent to pyplot.sca. It sets the current axes to arg. Note: This implicitly changes the current figure to the parent of arg.

返回:

Axes:一个Axes实例

Axes画图

matplotlib.axes.Axes.plot(*args, data=None, **kwargs),调用方法如下

plot([x], y, [fmt], data=None, **kwargs)
plot([x], y, [fmt], [x2], y2, [fmt2], ..., **kwargs)
x, y : array-like or scalar,表示x和y坐标的数值
fmt : str,线条类型,比如‘ro’ 表示红色圆圈
data : indexable object,线条数据

返回

lines:A list of Line2D objects representing the plotted data.

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 人工智能算法通俗讲解系列(四):xgboost

    不要被这个名字吓唬到,其实它的基本原理并不复杂。要理解xgboost,需要首先理解决策树。还没有接触过决策树的同学可以看一下《人工智能算法通俗讲解系列(三):决...

    Stanley Sun
  • Python代码搭建简单的神经网络

    https://medium.com/technology-invention-and-more/how-to-build-a-simple-neural-ne...

    Stanley Sun
  • 如何用Python创建一个多层神经网络

    英文原文:https://medium.com/technology-invention-and-more/how-to-build-a-multi-layer...

    Stanley Sun
  • DYSAN:通过对抗网络动态清除运动传感器数据,以防止敏感隐私问题(cs AI)

    随着大量的自主运动的广泛开展,越来越多的用户依靠移动应用程序通过智能手机监视其身体活动。向应用程序授予直接访问传感器数据的权限会使用户面临隐私风险。实际上,通常...

    RockNPeng
  • 远程工作者的返回给IT主管带来了新的挑战

    越来越多的公司与Apple Stores共享一个共同的问题。随着大流行复兴的到来,随着工人等待返回公司工作场所,技术可能是唯一的解决方案。 苹果商店最近试图重新...

    YH
  • Top 5 Real Life Usage of Blockchain

    Many businesses are embracing blockchain technology to simplify tasks in their f...

    用户4822892
  • 多模态仿真学习的泛化保证(CS RO)

    由于不完善的演示或无法模仿学习算法来准确推断专家的策略,模仿学习的控制策略通常无法推广到新的环境中。在本文中,我们通过利用可能近似正确(PAC)-贝叶斯(Bay...

    WEIIILII
  • Oracle Execute to Parse 执行解析比分析

    Leshami
  • 新的服务将客户的短信传输到店内的电话线上(Internet)

    总部位于多伦多的电信公司Unite Communications于7月成立了一家名为TextMeAnywhere的子公司,以帮助零售商在COVID-19及以后期...

    用户8054058
  • 3个应用程序,帮助高尔夫球手挥杆

    你有没有想过看你的挥杆和比赛中最好的挥杆比较?通过V1高尔夫应用程序记录你的挥杆,你可以将你的挥杆与专业人士进行比较,并使用一整套工具来准确分析你需要做什么。

    用户8054111

扫码关注云+社区

领取腾讯云代金券