Matplotlib Artist 教程
艺术家教程
使用Artist对象在画布上渲染。
matplotlib API分为三层。
- 的
matplotlib.backend_bases.FigureCanvas是在其上图形被绘制的区域 - 的
matplotlib.backend_bases.Renderer是知道如何在拉拢的对象FigureCanvas - 并且
matplotlib.artist.Artist是知道如何使用渲染器在画布上绘画的对象。
有两种类型Artists:基元和容器。基元表示,我们要画到画布的标准图形对象: Line2D,Rectangle, Text,AxesImage,等,容器是存放它们的地方(Axis, Axes和Figure)。
该标准使用是创建一个Figure实例,使用Figure创建一个或多个Axes或 Subplot实例,并使用Axes实例helper方法创建的图元。

如果要Axes在任意位置创建,只需使用在0-1相对图形坐标add_axes()中获取值列表的 方法:[left, bottom, width, height]



检查Artist属性的一种简便方法是使用该 matplotlib.artist.getp()函数(仅getp()在pyplot中),该函数 列出了属性及其值。该作品从派生类Artist为好,如,Figure和Rectangle。这是Figure上面提到的矩形属性:

对象容器
现在我们知道了如何检查和设置要配置的给定对象的属性,我们需要知道如何获取该对象。如引言中所述,有两种对象:基元和容器。尽管容器还具有一些属性,但是通常也要配置图元(Text 实例的字体,a 的宽度Line2D),例如, 容器是一个包含绘图中许多图元的容器,但是它还具有诸如的属性来控制x轴是“线性”还是“对数”。在本节中,我们将回顾各种容器对象存储要获取的对象的位置。Axes ArtistxscaleArtists
图容器
顶层容器Artist是 matplotlib.figure.Figure,它包含图中的所有内容。图的背景是 Rectangle,存储在中 Figure.patch。当您在图中添加子图(add_subplot())和轴(add_axes())时,它们将被附加到Figure.axes。这些也由创建它们的方法返回:

由于该图保留了“当前轴”(请参阅Figure.gca和 Figure.sca)的概念 以支持pylab / pyplot状态机,
因此您不应直接从轴列表中插入或删除轴,而应使用 add_subplot()和 add_axes()方法插入,以及 delaxes()方法删除。
但是,您可以自由地遍历轴列表或对其进行索引以访问Axes要自定义的实例。这是一个打开所有轴网格的示例:

轴容器
这matplotlib.axes.Axes是matplotlib宇宙的中心-它包含Artists图中使用的所有绝大多数,以及许多用于创建并将其添加 Artists到自身的辅助方法,以及用于访问和自定义Artists其包含的辅助方法。与一样 Figure,它包含一个 , 用于笛卡尔坐标和 极坐标;此补丁确定绘图区域的形状,背景和边框:Patch patchRectangleCircle
当您调用绘图方法(例如,规范化 plot()并传入数组或值列表)时,该方法将创建一个matplotlib.lines.Line2D() 实例,使用Line2D作为关键字参数传递的所有属性更新该行,将该行添加到Axes.lines容器中,并将其返回到您:

plot返回行列表,因为您可以传递多个x,y对来进行绘制,并且我们将长度为list的第一个元素解压缩到line变量中。该行已添加到 Axes.lines列表中:

同样,创建补丁的方法(例如 bar()创建矩形列表)会将补丁添加到Axes.patches列表中:

除了所有这些之外Artists,还Axes包含两个重要的Artist容器:XAxis 和和YAxis,用于处理刻度线和标签。
它们存储为实例变量 xaxis和 yaxis。在XAxis和YAxis 容器进行详细说明,但要注意的是,Axes包含在转移呼叫许多辅助方法 Axis的实例,
所以你往往不直接需要与他们合作,除非你想。例如,您可以XAxis使用Axeshelper方法设置ticklabel 的字体颜色:

轴容器
的matplotlib.axis.Axis情况下处理该刻度线的图中,网格线,刻度标记标签和轴标签。您可以分别为y轴配置左侧和右侧的刻度,为x轴分别配置左侧和右侧的刻度。在Axis 也存储在自动缩放中使用的数据和视图间隔,平移和缩放,以及所述Locator和 Formatter实例,其控制,其中蜱被放置以及它们是如何被表示为字符串。
每个Axis对象都包含一个label属性(这是pyplot对xlabel()和的调用中进行修改 的属性ylabel())以及主要和次要刻度线的列表。刻度线是 XTick和YTick实例,其中包含呈现刻度线和ticklabel的实际行和文本基元。由于报价是根据需要动态创建的(例如,在平移和缩放时),因此您应该通过其访问器方法get_major_ticks() 和来访问主要和次要报价的列表get_minor_ticks()。尽管刻度线包含所有原始元素,并且将在下面进行介绍,但是Axis实例具有访问器方法,这些方法返回刻度线,刻度标签,刻度位置等:


刻度容器
该matplotlib.axis.Tick是我们从血统最终容器对象Figure到 Axes到Axis 的Tick。
所述Tick包含tick和网格线的情况下,以及在上部和下部蜱标签实例。这些都可以作为的属性直接访问Tick。
这是一个示例,该示例使用美元符号设置右侧刻度线的格式器,并在yaxis的右侧将它们设置为绿色。



浙公网安备 33010602011771号