matplotlib._axes 子包架构

前情回顾

前面我们详细介绍了 matplotlib 的Figure对象,以及 Figure 对象的add_axes()add_subplot() 方法。

matplotlib.artist模块提供了一个 Figure 类,它是顶层的容器型Artist,它容纳所有绘图元件。

在2D平面坐标中,你应该把它看成一个矩形(Rectangle)区域。创建一个Figure也就是在画布上定义一块矩形区域。

这个矩形区域有两个最根本的用处:

  1. 可以再划分为多个子区域;如subplot就是在Figure矩形区域中划分子区域。
  2. 用于包含在其中的对象的坐标定位参考。

add_axes() 一次添加一个 Axes 子区域;
add_subplot() 一次添加一组 Axes 子区域。

Axes 就是 Figure 这个顶级容器里的子容器,Axes 包含了大部分的图形元素: Axis、Tick、Line2D、Text、Polygon等,并设置了坐标系。

Axes 本质上就是 Figure 这个矩形区域里的一个子矩形区域。

我们大多数时间都是在 Axes 这个矩形区域内绘图,以及操控 Axes 对象本身。

Axes 对象如此重要,matplotlib 设计了一个子包 axes来提供丰富的用于在 Axes 中绘图,以及操控 Axes 本身的类和方法。

Axes 子包的架构

matplotlib中提供了 axes 子包,在该子包中提供了4个模块,5个类,分别是:

  1. _axes.py

class Axes(_AxesBase):

  1. _base.py

class _process_plot_var_args(object):

class _AxesBase(martist.Artist):

  1. _secondary_axes.py

class SecondaryAxis(_AxesBase):

  1. _subplots.py

class SubplotBase(object)

这些模块提供了 matplotlib 绘图中与 Axes 相关的对象及其方法。
matplotlib._axes 子包架构_第1张图片
高清原图请移步 Python草堂 457079928 下载。

_axes.py 模块

最重要的当然是 _axes.py 模块了,这是一个隐藏模块。

该模块提供了10大类,66个绘图函数,用于绘制各种类型的图表。如:线型图、散点图、条型图、饼图等等。

为了自由操控 Axes 对象,在 axes 子包的各模块中提供了多达17组 201 个函数方法。

_base.py 模块

这个模块主要提供了两个类:

  1. 一个是class _AxesBase()用作 Axes 对象的基类。
  2. 另一个是 class _process_plot_var_args() 用于处理plot命令的可变长度参数,以便支持如下plot命令:
    • plot(t, s)
    • plot(t1, s1, t2, s2)
    • plot(t1, s1, ‘ko’, t2, s2)
    • plot(t1, s1, ‘ko’, t2, s2, ‘r–’, t3, e3)

它还提供了132个方法给他的子类 class Axes()

_secondary_axes.py

提供了 class SecondaryAxis() ,是用于支持第二个 X / Yaxis轴的通用类。

_subplots.py

这个模块提供了两个类:

class SubplotBase(object) 用作 subplots 的基类, subplots 是多个class:Axes实例,该基类带有额外的方法以方便生成和操作 figure 中一组class:Axes。

class subplot_class_factory(),这个是一个为了代码的简洁性而设计的类,并不是必须的。

下一篇我们接着讨论 axes 子包中为 Axes对象设计的那201个函数方法,看看工具箱中有哪些趁手的工具。

End.

你可能感兴趣的:(matplotlib,Python,python)