最近自己经常遇到matplotlib的OO API和pyplot包混乱不分的情况,所以抽时间好好把matplotlib的文档读了一下,下面是大概的翻译和总结。很多基础的东西还是要系统地掌握牢固哇~~
要素
Figure
就是整个图片,像弹出的窗口windows和Jupyter widgets,用于track所有的Axes,artists(titiles,legend)和canvas(用户不怎么接触到)。一个figure可以包含任何数量的Axes,至少有一个。最简单的创建新的figure的方法是:
fig = plt.figure() # an empty figure with no Axes
fig, ax = plt.subplots() # a figure with a single Axes
fig, axs = plt.subplots(2, 2) # a figure with a 2x2 grid of Axes
这是最简单的创建axes的方法,但之后也可以再加axes,允许更加复杂的axes layout。
Axes
data points放置的区域(x-y坐标或者x-y-z坐标)。Axes包含两个或三个Axis对象,Axis对象能够控制data limits(axes.Axes.set_xlim()和 axes.Axes.set_ylim())。
每个Axes有一个title,x-label和y-label,分别通过(axes.Axes.set_title(),axes.Axes.set_xlabel(),axes.Axes.set_ylabel()控制)
Axes类和它的成员方法是Object-oriented的主要入口。
Axis
就是底下那种数字和线的组合。控制limits,ticks和ticklabels。
ticks的位置是由Locator对象控制的,ticklabel的字符串是由Formatter对象控制的。
Artist
基础上来说图片上看到的每一样东西都是一个artist(包括Figure,Axes和Axis对象)。还包括 Text对象, Line2D对象, collections对象,Patch对象等。所有的Artist都被画到canvas上。大多数Artists都和Axes绑定了,这样一个Artist不能被多个Axes分享。
输入的种类
其他的像pandas对象或np.matrix不能作