二、 matplotlib Artist

  1. matplotlib有三个层次的API:

    • matplotlib.backend_bases.FigureCanvas:代表了一个绘图区,在这个绘图区上图表被绘制
    • matplotlib.backend_bases.Renderer:代表了渲染器,它知道如何在绘图区上绘图。
    • matplotlib.artist.Artist:代表了图表组件,它知道如何利用渲染器在绘图区上绘图。

    通常用于有95%以上的时机都是与matplotlib.artist.Artist类打交道,它是高层次的绘图控制。

  2. matplotlib中有两种Artist

    • primitive:代表了我们在绘图区域上绘制的基础的绘图组件,比如Line2DRectangleText 以及AxesImage等等。

    • container:代表了放置primitive的那些绘图组件。比如AxisAxes以及Figure,如图所示

      Artist

  3. matplotlib的标准使用流程为:

    • 创建一个Figure实例对象fig
    • 使用fig实例创建一个或者多个Axes实例,或者创建一个或者多个Subplot实例
    • 使用Axes实例的方法来创建primitive
  4. 每个在图形中出现的元素都是Artist。其属性有:

    • Figure.patch属性:是一个Rectangle,代表了图表的矩形框,它的大小就是图表的大小, 并且可以通过它设置图表的背景色和透明度。

    • Axes.patch属性:也是一个Rectangle,代表了绘图坐标轴内部的矩形框(白底黑边), 通过它可以设置Axes的颜色、透明度等。

    • 所有的Artist有下列属性。:

      • .alpha属性:透明度。值为0—1之间的浮点数
      • .animated属性:一个布尔值,表示是否用于加速动画绘制
      • .axes属性:返回这个Artist所属的axes,可能为None
      • .clip_box属性:用于剪切Artistbounding box
      • .clip_on属性:是否开启clip
      • .clip_path属性:Artist沿着该path执行clip
      • .contains属性:一个picking function用于测试Artist是否包含pick point
      • .figure属性:该Artist所属的Figure,可能为None
      • .gid属性:该Artistid字符串
      • .label:一个text label
      • .picker:一个python object用于控制object picking
      • .transform:转换矩阵
      • .url属性:一个url string,代表本Artist
      • .visible:布尔值,控制Artist是否绘制
      • .zorder:决定了Artist的绘制顺序。zorder越小就越底层,则越优先绘制。

    这些属性可以通过旧式的settergetter函数访问和设置。如: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)来设置属性(一次可以设置多个属性)

    Artist所有属性