Axes类
Axes类是matplotlib的核心,你在大多数时间都是在与它打交道。Axes代表了plotting area。大量的用于绘图的Artist存放在它内部,并且它有许多辅助方法来创建和添加Artist给它自己,而且它也有许多赋值方法来访问和修改这些Artist。 它有许多方法用于绘图,如.plot()、.text()、.hist()、.imshow()等方法用于创建大多数常见的primitive(如Line2D,Rectangle,Text,Image等等)。这些方法会创建primitive Artist实例,并且添加这些实例到对应的container上去,然后必要的时候会绘制这些图形。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()方法,不过它会添加patches到Axes.patches列表。
5. 你不应该直接通过Axes.lines和Axes.patches列表来添加图表。因为当你通过.plot()和.hist()等方法添加图表时,matplotlib会做许多工作而不仅仅是添加绘图组件到Axes.lines或者Axes.patches列表中。
但是你可以使用Axes的辅助方法.add_line()和.add_patch()方法来添加。
6. 下面是Axes用于创建primitive Artist以及添加他们到相应的container中的方法:
ax.annotate():创建text annotation(Annotate对象),然后添加到ax.texts列表中。ax.bar():创建bar chart(Rectangle对象),然后添加到ax.patches列表中。ax.errorbar():创建error bar plot(Line2D对象和Rectangle对象),然后添加到ax.lines列表中和ax.patches列表中。ax.fill():创建shared area(Polygon对象),然后添加到ax.patches列表中ax.hist():创建histogram(Rectangle对象),然后添加到ax.patches列表中。ax.imshow():创建image data(AxesImage对象),然后添加到ax.images列表中。ax.legend():创建axes legends(Legend对象),然后添加到ax.legends列表中。ax.plot():创建xy plot(Line2D对象),然后添加到ax.lines列表中。ax.scatter():创建scatter charts(PolygonCollection对象),然后添加到ax.collections列表中。ax.text():创建text(Text对象),然后添加到ax.texts列表中。
7. 另外Axes还包含两个最重要的Artist container:
ax.xaxis:XAxis对象的实例,用于处理x轴tick以及label的绘制ax.yaxis:YAxis对象的实例,用于处理y轴tick以及label的绘制
Axes包含了许多辅助方法来访问和修改XAxis和YAxis,这些辅助方法其实内部调用的是XAxis和YAxis的方法。因此通常情况下你不需要直接调用XAxis和YAxis的方法。
学员评价