课程评价 (0)

请对课程作出评价:
0/300

学员评价

暂无精选评价
15分钟

Axes类

  1. Axes类是matplotlib的核心,你在大多数时间都是在与它打交道。Axes代表了plotting area。大量的用于绘图的Artist存放在它内部,并且它有许多辅助方法来创建和添加Artist给它自己,而且它也有许多赋值方法来访问和修改这些Artist。 它有许多方法用于绘图,如.plot().text().hist().imshow()等方法用于创建大多数常见的primitive(如Line2DRectangleTextImage等等)。这些方法会创建primitive Artist实例,并且添加这些实例到对应的container上去,然后必要的时候会绘制这些图形。
  2. Subplot就是一个特殊的Axes,其实例是位于网格中某个区域的Subplot实例。其实你也可以在任意区域创建Axes,通过Figure.add_axes([left,bottom,width,height])来创建一个任意区域的Axes,其中left,bottom,width,height都是[0--1]之间的浮点数,他们代表了相对于Figure的坐标。

3. Axes包含了一个.patch属性,对于笛卡尔坐标系而言,它是一个Rectangle;对于极坐标而言,它是一个Circle。这个.patch属性决定了plotting region的形状、背景和边框。

4. 当调用Axes.plot()方法时,该方法会创建一个matplotlib.lines.Line2D实例,然后会利用传给.plot()的关键字参数来更新该Line2D的属性,然后将这个Line2D添加到Axes.lines列表中。该方法返回的刚创建的Line2D列表,因为你可以传递多个(x,y)值从而创建多个Line2D。 当调用Axes.hist()方法时,类似于.plot()方法,不过它会添加patchesAxes.patches列表。

5. 你不应该直接通过Axes.linesAxes.patches列表来添加图表。因为当你通过.plot().hist()等方法添加图表时,matplotlib会做许多工作而不仅仅是添加绘图组件到Axes.lines或者Axes.patches列表中。 但是你可以使用Axes的辅助方法.add_line().add_patch()方法来添加。

6. 下面是Axes用于创建primitive Artist以及添加他们到相应的container中的方法:

  • ax.annotate():创建text annotationAnnotate对象),然后添加到ax.texts列表中。
  • ax.bar():创建bar chartRectangle对象),然后添加到ax.patches列表中。
  • ax.errorbar():创建error bar plotLine2D对象和Rectangle对象),然后添加到ax.lines 列表中和ax.patches列表中。
  • ax.fill():创建shared areaPolygon对象),然后添加到ax.patches列表中
  • ax.hist():创建histogramRectangle对象),然后添加到ax.patches列表中。
  • ax.imshow():创建image dataAxesImage对象),然后添加到ax.images列表中。
  • ax.legend():创建axes legendsLegend对象),然后添加到ax.legends列表中。
  • ax.plot():创建xy plotLine2D对象),然后添加到ax.lines列表中。
  • ax.scatter():创建scatter chartsPolygonCollection对象),然后添加到 ax.collections列表中。
  • ax.text():创建textText对象),然后添加到ax.texts列表中。

7. 另外Axes还包含两个最重要的Artist container

  • ax.xaxisXAxis对象的实例,用于处理xtick以及label的绘制
  • ax.yaxisYAxis对象的实例,用于处理ytick以及label的绘制

Axes包含了许多辅助方法来访问和修改XAxisYAxis,这些辅助方法其实内部调用的是XAxisYAxis的方法。因此通常情况下你不需要直接调用XAxisYAxis的方法。