1
- # Artist 教程
1
+ # 艺术家教程
2
2
3
3
matplotlib API 有三个层级。 ` matplotlib.backend_bases.FigureCanvas ` 是绘制图形的区域,` matplotlib.backend_bases.Renderer ` 是知道如何在` ChartCanvas ` 上绘制的对象,而` matplotlib.artist.Artist ` 是知道如何使用渲染器在画布上画图的对象。 ` FigureCanvas ` 和` Renderer ` 处理与用户界面工具包(如 wxPython)或 PostScript® 等绘图语言交互的所有细节,` Artist ` 处理所有高级结构,如表示和布局图形,文本和线条。通常用户话费95%的时间来处理 Artist。
4
4
5
- 有两种类型的 Artist:基本类型和容器类型。基本类型表示我们想要绘制到画布上的标准图形对象:` Line2D ` ,` Rectangle ` ,` Text ` ,` AxesImage ` 等,容器是放置它们的位置(` Axis ` ,` Axes ` 和` Figure ` )。标准用法是创建一个` Figure ` 实例,使用` Figure ` 创建一个或多个` Axes ` 或` Subplot ` 实例,并使用` Axes ` 实例的辅助方法来创建基本类型。在下面的示例中,我们使用` matplotlib.pyplot.figure() ` 创建一个` Figure ` 实例,这是一个便捷的方法,用于实例化` Figure ` 实例并将它们与您的用户界面或绘图工具包` FigureCanvas ` 连接。正如我们将在下面讨论的,这不是必须的 - 你可以直接使用 PostScript,PDF,Gtk+ 或 wxPython ` FigureCanvas ` 实例,直接实例化你的图形并连接它们 - 但是因为我们在这里关注 Artist API,我们让` pyplot ` 为我们处理一些细节:
5
+ 有两种类型的 Artist:基本类型和容器类型。基本类型表示我们想要绘制到画布上的标准图形对象:` Line2D ` ,` Rectangle ` ,` Text ` ,` AxesImage ` 等,容器是放置它们的位置(` Axis ` ,` Axes ` 和` Figure ` )。标准用法是创建一个` Figure ` 实例,使用` Figure ` 创建一个或多个` Axes ` 或` Subplot ` 实例,并使用` Axes ` 实例的辅助方法来创建基本类型。在下面的示例中,我们使用` matplotlib.pyplot.figure() ` 创建一个` Figure ` 实例,这是一个便捷的方法,用于实例化` Figure ` 实例并将它们与您的用户界面或绘图工具包` FigureCanvas ` 连接。正如我们将在下面讨论的,这不是必须的 - 你可以直接使用 PostScript,PDF,Gtk+ 或 wxPython ` FigureCanvas ` 实例,直接实例化你的图形并连接它们 - 但是因为我们在这里关注艺术家 API,我们让` pyplot ` 为我们处理一些细节:
6
6
7
7
``` py
8
8
import matplotlib.pyplot as plt
@@ -58,22 +58,22 @@ ytext = ax.set_ylabel('my ydata')
58
58
59
59
## 自定义你的对象
60
60
61
- 图中的每个元素都由一个 matplotlib Artist 表示 ,每个元素都有一个扩展属性列表用于配置它的外观。 图形本身包含一个` Rectangle ` ,正好是图形的大小,你可以使用它来设置图形的背景颜色和透明度。 同样,每个` Axes ` 边框(在通常的 matplotlib 绘图中是标准的白底黑边)拥有一个` Rectangle ` 实例,用于确定轴域的颜色,透明度和其他属性,这些实例存储为成员变量` Figure.patch ` 和` Axes.patch ` (“Patch”是一个继承自 MATLAB 的名称,它是图形上的一个颜色的 2D“补丁”,例如矩形,圆和多边形)。每个 matplotlib Artist 都有以下属性 。
61
+ 图中的每个元素都由一个 matplotlib 艺术家表示 ,每个元素都有一个扩展属性列表用于配置它的外观。 图形本身包含一个` Rectangle ` ,正好是图形的大小,你可以使用它来设置图形的背景颜色和透明度。 同样,每个` Axes ` 边框(在通常的 matplotlib 绘图中是标准的白底黑边)拥有一个` Rectangle ` 实例,用于确定轴域的颜色,透明度和其他属性,这些实例存储为成员变量` Figure.patch ` 和` Axes.patch ` (“Patch”是一个继承自 MATLAB 的名称,它是图形上的一个颜色的 2D“补丁”,例如矩形,圆和多边形)。每个 matplotlib 艺术家都有以下属性 。
62
62
63
63
| 属性 | 描述 |
64
64
| --- | --- |
65
65
| alpha | 透明度 - 0 ~ 1 的标量 |
66
66
| animated | 用于帮助动画绘制的布尔值 |
67
- | axes | Artist 所在的轴域 ,可能为空 |
68
- | clip_box | 用于剪切 Artist 的边框 |
67
+ | axes | 艺术家所在的轴域 ,可能为空 |
68
+ | clip_box | 用于剪切艺术家的边框 |
69
69
| clip_on | 剪切是否开启 |
70
- | clip_path | Artist 被剪切的路径 |
71
- | contains | 一个拾取函数,用于判断 Artist 是否位于拾取点 |
72
- | figure | Artist 所在的图形实例 ,可能为空 |
70
+ | clip_path | 艺术家被剪切的路径 |
71
+ | contains | 一个拾取函数,用于判断艺术家是否位于拾取点 |
72
+ | figure | 艺术家所在的图形实例 ,可能为空 |
73
73
| label | 文本标签(用于自动标记) |
74
74
| picker | 控制对象拾取的 Python 对象 |
75
75
| transform | 变换 |
76
- | visible | 布尔值,表示 Artist 是否应该绘制 |
76
+ | visible | 布尔值,表示艺术家是否应该绘制 |
77
77
| zorder | 确定绘制顺序的数值 |
78
78
| rasterized | 布尔值,是否将向量转换为光栅图形(出于压缩或 eps 透明度) |
79
79
@@ -126,11 +126,11 @@ In [149]: matplotlib.artist.getp(fig.patch)
126
126
127
127
## 对象容器
128
128
129
- 现在我们知道如何检查和设置我们想要配置的给定对象的属性,现在我们需要如何获取该对象。 前面提到了两种对象:基本类型和容器类型。 基本类型通常是你想要配置的东西(` Text ` 实例的字体,` Line2D ` 的宽度),虽然容器也有一些属性 - 例如 ` Axes ` 是一个容器 Artist,包含你的绘图中的许多基本类型,但它也有属性,比如` xscale ` 来控制` xaxis ` 是“线性”还是“对数”。 在本节中,我们将回顾各种容器对象存储您想要访问的 Artist 的位置。
129
+ 现在我们知道如何检查和设置我们想要配置的给定对象的属性,现在我们需要如何获取该对象。 前面提到了两种对象:基本类型和容器类型。 基本类型通常是你想要配置的东西(` Text ` 实例的字体,` Line2D ` 的宽度),虽然容器也有一些属性 - 例如 ` Axes ` 是一个容器 Artist,包含你的绘图中的许多基本类型,但它也有属性,比如` xscale ` 来控制` xaxis ` 是“线性”还是“对数”。 在本节中,我们将回顾各种容器对象存储您想要访问的艺术家的位置。
130
130
131
131
## 图形容器
132
132
133
- 顶层容器 Artist 是 ` matplotlib.figure.Figure ` ,它包含图形中的所有内容。 图形的背景是一个` Rectangle ` ,存储在` Figure.patch ` 中。 当您向图形中添加子图(` add_subplot() ` )和轴域(` add_axes() ` )时,这些会附加到` Figure.axes ` 。 它们也由创建它们的方法返回:
133
+ 顶层容器艺术家是 ` matplotlib.figure.Figure ` ,它包含图形中的所有内容。 图形的背景是一个` Rectangle ` ,存储在` Figure.patch ` 中。 当您向图形中添加子图(` add_subplot() ` )和轴域(` add_axes() ` )时,这些会附加到` Figure.axes ` 。 它们也由创建它们的方法返回:
134
134
135
135
``` py
136
136
In [156 ]: fig = plt.figure()
@@ -153,9 +153,9 @@ for ax in fig.axes:
153
153
ax.grid(True )
154
154
```
155
155
156
- 图形还拥有自己的文本,线条,补丁和图像,您可以使用它们直接添加基本类型。 图形的默认坐标系统简单地以像素(这通常不是你想要的)为单位,但你可以通过设置您添加到图中的 Artist 的 ` transform ` 属性来控制它。
156
+ 图形还拥有自己的文本,线条,补丁和图像,您可以使用它们直接添加基本类型。 图形的默认坐标系统简单地以像素(这通常不是你想要的)为单位,但你可以通过设置您添加到图中的艺术家的 ` transform ` 属性来控制它。
157
157
158
- 更有用的是“图形坐标系”,其中` (0,0) ` 是图的左下角,` (1,1) ` 是图的右上角,您可以通过将` Artist ` 的转换设置为 ` fig.transFigure ` 来获得:
158
+ 更有用的是“图形坐标系”,其中` (0,0) ` 是图的左下角,` (1,1) ` 是图的右上角,您可以通过将` Artist ` 的变换设置为 ` fig.transFigure ` 来获得:
159
159
160
160
``` py
161
161
In [191 ]: fig = plt.figure()
@@ -304,13 +304,13 @@ for label in ax.get_xticklabels():
304
304
| --- | --- |
305
305
| ` artists ` | ` Artist ` 实例的列表 |
306
306
| ` patch ` | 用于轴域背景的` Rectangle ` 实例 |
307
- | collections | ` Collection ` 实例的列表 |
308
- | images | ` AxesImage ` 的列表 |
309
- | legends | ` Legend ` 实例的列表 |
310
- | lines | ` Line2D ` 实例的列表 |
311
- | patches | ` Patch ` 实例的列表 |
312
- | texts | ` Text ` 实例的列表 |
313
- | xaxis | ` matplotlib.axis.XAxis ` 实例 |
314
- | yaxis | ` matplotlib.axis.YAxis ` 实例 |
307
+ | ` collections ` | ` Collection ` 实例的列表 |
308
+ | ` images ` | ` AxesImage ` 的列表 |
309
+ | ` legends ` | ` Legend ` 实例的列表 |
310
+ | ` lines ` | ` Line2D ` 实例的列表 |
311
+ | ` patches ` | ` Patch ` 实例的列表 |
312
+ | ` texts ` | ` Text ` 实例的列表 |
313
+ | ` xaxis ` | ` matplotlib.axis.XAxis ` 实例 |
314
+ | ` yaxis ` | ` matplotlib.axis.YAxis ` 实例 |
315
315
316
316
## 轴容器
0 commit comments