matplotlib 的架构设计
matplotlib是一个Python包,包就是一个包含名为“__init__.py" 初始化文件的文件夹。
matplotlib包下面还有一些子包,其中的 axes, backends 两个子包与我们关系最紧密。
matplotlib包及其子包共提供了68个模块。在这些模块中提供了matplotlib绘图需要的全部对象。
![344d65deb1a6c75e8dd89925613c62fd.png](https://i-blog.csdnimg.cn/blog_migrate/81d95d5247bbb8691438de8fe914f30f.jpeg)
matplotlib架构
matplotlib常用对象
matplotlib中对象众多,常用的对象有:
![f46e1a45a66bb2201893965825ab428d.png](https://i-blog.csdnimg.cn/blog_migrate/1b45bc83f412ad7ea4a9a3bb805920fc.jpeg)
MPL绘图常用对象
请注意这些对象的层次关系。
matplotlib面向对象绘图流程
matplotlib中,面向对象绘图的一般流程如下:
![0dc70d8dad12ecbcb901dbb4afa0d753.png](https://i-blog.csdnimg.cn/blog_migrate/10149a219650f331376e0dddbb4d404a.jpeg)
MPL绘图流程
首先,导入我们要用到的模块和类,如:
from matplotlib.backends.backend_agg import FigureCanvasAggfrom matplotlib.figure import Figurefrom matplotlib.axes import Axesimport numpy as np.......
第二步:实例化Figure类,创建一个figure,这是一个顶级容器,后面绘制的对象一般都会放到这个容器中。figure定义了一矩形区域,提供了后续对象定位的参考坐标,它也是MPL绘图中各种坐标类型与显示(display)坐标转换的桥梁。
第三步:实例化Canvas类,创建一块画布。实例化的同时就将上一步创建的figure与这个Canvas做了绑定。
第四步:向figure中添加Axes,这是一个子容器。可以向一个figure中添加多个Axes,后续添加的元素,绝大多数都是放在指定的子容器中。
第五步:向指定的Axes中添加artists,如点、线、面、文本等。重复添加....
然后:显示或保存你的图形。
matplotlib.figure模块概述
figure模块提供顶层的Artist,其中的Figure类是一个顶级容器,容纳(存放)所有的绘图元素。该模块定义了下面的类:
- AxesStack,堆栈的专门化,以跟踪图形中的所有轴。
- Figure,所有绘图元素的顶层容器。
- SubplotParams,保存子图参数的类。
一般情况下,AxesStack、SubplotParams自动在后台隐式地提供服务,我们不需要主动去调用和处理它们。
该模块中的 Figure 是最基础,也是最常用的类。
最基础的 Figure
MPL绘图总是实例化Figure类开始,它是其它元素的顶级容器,也是其它元素定位的参考坐标。它提供了一系列参数、属性、方法,用于绘制、控制Figure本身及其子容器和元素的布局。
Figure类的调用签名如下:
![2e0b4f64dfed79dd584fd0d5c3595846.png](https://i-blog.csdnimg.cn/blog_migrate/20207268a23c1a38d95a63a975d39ccd.jpeg)
有9个必需的形参,但又都提供了默认值。意味着,你可以一个参数都不提供,MPL会调用默认参数创建一个Figure实例。
下一篇,将详解这些参数的使用。
思维导读可前往"Python草堂”群457079928下载。
关注”Python草堂“,轻松阅读下一篇。