Artist对象分为 primitives 和 containers 两种。primitives对象主要是我们想在figure上画出的各类图形对象。containers对象主要用来放置primitives对象,有四种,即 figure、axes、axis和tick。
1.Figure
创建figure:
import matplotlib.pyplot as plt
fig = plt.figure()
使用plt.subplot()和plt.subplot_mosiac()直接生成figure和axes。
figure有自己的primitives特性,也就是说有的primitives对象可以直接在figure上做图,不用创建axes,比如images、lines、patches和text。
import matplotlib.lines as lines
fig = plt.figure()
l1 = lines.Line2D([0, 1], [0, 1], transform=fig.transFigure, figure=fig)
l2 = lines.Line2D([0, 1], [1, 0], transform=fig.transFigure, figure=fig)
fig.lines.extend([l1, l2])
plt.show()
figure包含的artist对象包括:axes、patch、images、legends、patches、lines、texts,以上各特性除patch外均为对应对象的列表,patch是一个Rectangle对象。
2.Axes
在已有的figure上生成新的axes:
# 方法1:
ax1 = fig.add_subplot(211)
代码中三个数字分别表示fig上的axes布局为两横一列,ax1为第一个。
# 方法2:
ax2 = fig.add_axes([0.15, 0.1, 0.7, 0.3])
[]中的四个数字依次为新增axes的原点在figure中x坐标位置,原点在figure中y坐标位置,新增axes的x坐标长,新增axes的y坐标长。
创建的axes将加入fig.axes(一个axes 的list)中,可以使用迭代对figure上的axes进行操作,比如:
for ax in fig.axes:
ax.grid(True)
从figure中删除axes的方法:
ax1.remove
ax2.remove
axes对象和figure一样,也有对应各种primitive artist对象的特性,以列表形式保存axes上存在的各种primitives,比如axes.patches和axes.lines。
一般通过axes的方法(helper method)创建primitive artist对象,并且将这些对象加入对应的axes上,但也可以自己手动操作,不过介于各类primitives的创建过程,不建议直接向axes.patches等列表中直接添加对象,可以先创建好对象再用axes对象的add_patch方法添加到axes上去。
fig, ax = plt.subplots()
rect = matplotlib.patches.Rectangle((1, 1), width=5, height=12)
ax.add_patch(rect)
除了primitive artist对象,axes还可包含两个container artist对象,即:XAxis和YAxis。
axes包含的artist对象包括:artists、patch、collections(比如散点图)、images、lines、patches、texts、XAxis和YAxis。
3.Axis
axis对象用来容纳tick lines、grid lines、tick标签和axis标签的。
axes有xaxis和yaxis,xaxis可以分别设置左右两边的tick,yaxis可以分别设置上下两侧的tick。
4.Tick
tick包含的特性:
Attributes | |
---|---|
tick1line | 左边或下面的tick线 |
tick2line | 右边或上面的tick线 |
gridline | 格栅线 |
label1 | tick1line的标签 |
label2 | tick2line的标签 |