二、 matplotlib Artist
matplotlib
有三个层次的API:matplotlib.backend_bases.FigureCanvas
:代表了一个绘图区,在这个绘图区上图表被绘制matplotlib.backend_bases.Renderer
:代表了渲染器,它知道如何在绘图区上绘图。matplotlib.artist.Artist
:代表了图表组件,它知道如何利用渲染器在绘图区上绘图。
通常用于有95%以上的时机都是与
matplotlib.artist.Artist
类打交道,它是高层次的绘图控制。matplotlib
中有两种Artist
:primitive
:代表了我们在绘图区域上绘制的基础的绘图组件,比如Line2D
,Rectangle
,Text
以及AxesImage
等等。container
:代表了放置primitive
的那些绘图组件。比如Axis
、Axes
以及Figure
,如图所示
matplotlib
的标准使用流程为:- 创建一个
Figure
实例对象fig
- 使用
fig
实例创建一个或者多个Axes
实例,或者创建一个或者多个Subplot
实例 - 使用
Axes
实例的方法来创建primitive
- 创建一个
每个在图形中出现的元素都是
Artist
。其属性有:Figure.patch
属性:是一个Rectangle
,代表了图表的矩形框,它的大小就是图表的大小, 并且可以通过它设置图表的背景色和透明度。Axes.patch
属性:也是一个Rectangle
,代表了绘图坐标轴内部的矩形框(白底黑边), 通过它可以设置Axes
的颜色、透明度等。所有的
Artist
有下列属性。:.alpha
属性:透明度。值为0—1之间的浮点数.animated
属性:一个布尔值,表示是否用于加速动画绘制.axes
属性:返回这个Artist
所属的axes
,可能为None
.clip_box
属性:用于剪切Artist
的bounding box
.clip_on
属性:是否开启clip
.clip_path
属性:Artist
沿着该path
执行clip
.contains
属性:一个picking function
用于测试Artist
是否包含pick point
.figure
属性:该Artist
所属的Figure
,可能为None
.gid
属性:该Artist
的id
字符串.label
:一个text label
.picker
:一个python object
用于控制object picking
.transform
:转换矩阵.url
属性:一个url string
,代表本Artist
.visible
:布尔值,控制Artist
是否绘制.zorder
:决定了Artist
的绘制顺序。zorder
越小就越底层,则越优先绘制。
这些属性可以通过旧式的
setter
和getter
函数访问和设置。如:o.get_alpha()
、o.set_alpha(0.5)
。如果你想一次设置多个属性,也可以用:o.set(alpha=0.5,zorder=2)
这种方式。你可以使用matplotlib.artist.getp(o)
来一次获取o
的所有属性。当然你可以使用
pyplot.getp(o,"alpha")
来获取属性(一次只能返回一个属性),如果指定属性名,则返回对象的该属性值;如果不指定属性名,则返回对象的所有的属性和值。用pyplot.setp(o,alpha=0.5,zorder=2)
来设置属性(一次可以设置多个属性)