Skip to content

Commit 763e97d

Browse files
committed
fix 'artist', 'patch'
1 parent 4d6c286 commit 763e97d

File tree

11 files changed

+80
-80
lines changed

11 files changed

+80
-80
lines changed

3.1.md

+3-3
Original file line numberDiff line numberDiff line change
@@ -63,14 +63,14 @@ plt.show()
6363
```py
6464
plt.plot(x, y, linewidth=2.0)
6565
```
66-
66+
6767
+ 使用`Line2D`实例的`setter`方法。 `plot`返回`Line2D`对象的列表,例如`line1,line2 = plot(x1,y1,x2,y2)`。 在下面的代码中,我们假设只有一行,返回的列表长度为 1。我们对`line`使用元组解构,得到该列表的第一个元素:
6868

6969
```py
7070
line, = plt.plot(x, y, '-')
7171
line.set_antialiased(False) # turn off antialising
7272
```
73-
73+
7474
+ 使用`setp()`命令。 下面的示例使用 MATLAB 风格的命令来设置线条列表上的多个属性。 `setp`使用对象列表或单个对象透明地工作。 你可以使用 python 关键字参数或 MATLAB 风格的字符串/值对:
7575

7676
```py
@@ -91,7 +91,7 @@ plt.show()
9191
| `antialiased or aa` | `[True / False]` |
9292
| `clip_box` | `matplotlib.transform.Bbox` 实例 |
9393
| `clip_on` | `[True / False]` |
94-
| `clip_path` | `Path` 实例和 `Transform` 实例,以及`Patch` |
94+
| `clip_path` | `Path` 实例, `Transform`,以及`Patch`实例 |
9595
| `color or c` | 任何 `matplotlib` 颜色 |
9696
| `contains` | 命中测试函数 |
9797
| `dash_capstyle` | `['butt' / 'round' / 'projecting']` |

3.4.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -120,7 +120,7 @@ plt.tight_layout()
120120

121121
## 警告
122122

123-
+ `tight_layout()`只考虑刻度标签,轴标签和标题。 因此,其他 Artist 可能被截断并且也可能重叠
123+
+ `tight_layout()`只考虑刻度标签,轴标签和标题。 因此,其他艺术家可能被截断并且也可能重叠
124124
+ 它假定刻度标签,轴标签和标题所需的额外空间与轴域的原始位置无关。 这通常是真的,但在罕见的情况下不是。
125125
+ `pad = 0`将某些文本剪切几个像素。 这可能是当前算法的错误或限制,并且不清楚为什么会发生。 同时,推荐使用至少大于 0.3 的间隔。
126126

3.5.md

+21-21
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
1-
# Artist 教程
1+
# 艺术家教程
22

33
matplotlib API 有三个层级。 `matplotlib.backend_bases.FigureCanvas`是绘制图形的区域,`matplotlib.backend_bases.Renderer`是知道如何在`ChartCanvas`上绘制的对象,而`matplotlib.artist.Artist`是知道如何使用渲染器在画布上画图的对象。 `FigureCanvas``Renderer`处理与用户界面工具包(如 wxPython)或 PostScript® 等绘图语言交互的所有细节,`Artist`处理所有高级结构,如表示和布局图形,文本和线条。通常用户话费95%的时间来处理 Artist。
44

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`为我们处理一些细节:
66

77
```py
88
import matplotlib.pyplot as plt
@@ -58,22 +58,22 @@ ytext = ax.set_ylabel('my ydata')
5858

5959
## 自定义你的对象
6060

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 艺术家都有以下属性
6262

6363
| 属性 | 描述 |
6464
| --- | --- |
6565
| alpha | 透明度 - 0 ~ 1 的标量 |
6666
| animated | 用于帮助动画绘制的布尔值 |
67-
| axes | Artist 所在的轴域,可能为空 |
68-
| clip_box | 用于剪切 Artist 的边框 |
67+
| axes | 艺术家所在的轴域,可能为空 |
68+
| clip_box | 用于剪切艺术家的边框 |
6969
| clip_on | 剪切是否开启 |
70-
| clip_path | Artist 被剪切的路径 |
71-
| contains | 一个拾取函数,用于判断 Artist 是否位于拾取点 |
72-
| figure | Artist 所在的图形实例,可能为空 |
70+
| clip_path | 艺术家被剪切的路径 |
71+
| contains | 一个拾取函数,用于判断艺术家是否位于拾取点 |
72+
| figure | 艺术家所在的图形实例,可能为空 |
7373
| label | 文本标签(用于自动标记) |
7474
| picker | 控制对象拾取的 Python 对象 |
7575
| transform | 变换 |
76-
| visible | 布尔值,表示 Artist 是否应该绘制 |
76+
| visible | 布尔值,表示艺术家是否应该绘制 |
7777
| zorder | 确定绘制顺序的数值 |
7878
| rasterized | 布尔值,是否将向量转换为光栅图形(出于压缩或 eps 透明度) |
7979

@@ -126,11 +126,11 @@ In [149]: matplotlib.artist.getp(fig.patch)
126126

127127
## 对象容器
128128

129-
现在我们知道如何检查和设置我们想要配置的给定对象的属性,现在我们需要如何获取该对象。 前面提到了两种对象:基本类型和容器类型。 基本类型通常是你想要配置的东西(`Text`实例的字体,`Line2D`的宽度),虽然容器也有一些属性 - 例如 `Axes`是一个容器 Artist,包含你的绘图中的许多基本类型,但它也有属性,比如`xscale`来控制`xaxis`是“线性”还是“对数”。 在本节中,我们将回顾各种容器对象存储您想要访问的 Artist 的位置。
129+
现在我们知道如何检查和设置我们想要配置的给定对象的属性,现在我们需要如何获取该对象。 前面提到了两种对象:基本类型和容器类型。 基本类型通常是你想要配置的东西(`Text`实例的字体,`Line2D`的宽度),虽然容器也有一些属性 - 例如 `Axes`是一个容器 Artist,包含你的绘图中的许多基本类型,但它也有属性,比如`xscale`来控制`xaxis`是“线性”还是“对数”。 在本节中,我们将回顾各种容器对象存储您想要访问的艺术家的位置。
130130

131131
## 图形容器
132132

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`。 它们也由创建它们的方法返回:
134134

135135
```py
136136
In [156]: fig = plt.figure()
@@ -153,9 +153,9 @@ for ax in fig.axes:
153153
ax.grid(True)
154154
```
155155

156-
图形还拥有自己的文本,线条,补丁和图像,您可以使用它们直接添加基本类型。 图形的默认坐标系统简单地以像素(这通常不是你想要的)为单位,但你可以通过设置您添加到图中的 Artist 的`transform`属性来控制它。
156+
图形还拥有自己的文本,线条,补丁和图像,您可以使用它们直接添加基本类型。 图形的默认坐标系统简单地以像素(这通常不是你想要的)为单位,但你可以通过设置您添加到图中的艺术家的`transform`属性来控制它。
157157

158-
更有用的是“图形坐标系”,其中`(0,0)`是图的左下角,`(1,1)`是图的右上角,您可以通过将`Artist`的转换设置为`fig.transFigure`来获得:
158+
更有用的是“图形坐标系”,其中`(0,0)`是图的左下角,`(1,1)`是图的右上角,您可以通过将`Artist`的变换设置为`fig.transFigure`来获得:
159159

160160
```py
161161
In [191]: fig = plt.figure()
@@ -304,13 +304,13 @@ for label in ax.get_xticklabels():
304304
| --- | --- |
305305
| `artists` | `Artist`实例的列表 |
306306
| `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`实例 |
315315

316316
## 轴容器

3.6.md

+5-5
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@ handles, labels = ax.get_legend_handles_labels()
3535
ax.legend(handles, labels)
3636
```
3737

38-
`get_legend_handles_labels()`函数返回轴域上存在的句柄/artist 的列表,这些句柄/artist 可以用于为结果图例生成条目 - 但值得注意的是,并非所有 artist 都可以添加到图例中, 这种情况下会创建『代理』(请参阅[特地为添加到图例创建 artist(也称为代理 artist)](http://matplotlib.org/users/legend_guide.html#proxy-legend-handles),来了解更多详细信息)。
38+
`get_legend_handles_labels()`函数返回轴域上存在的句柄/artist 的列表,这些句柄/artist 可以用于为结果图例生成条目 - 但值得注意的是,并非所有艺术家都可以添加到图例中, 这种情况下会创建『代理』(请参阅[特地为添加到图例创建 artist(也称为代理 artist)](http://matplotlib.org/users/legend_guide.html#proxy-legend-handles),来了解更多详细信息)。
3939

4040
为了完全控制要添加到图例的内容,通常将适当的句柄直接传递给`legend()`
4141

@@ -55,7 +55,7 @@ plt.legend([line_up, line_down], ['Line Up', 'Line Down'])
5555

5656
## 特地为添加到图例创建 artist(也称为代理 artist)
5757

58-
并非所有的句柄都可以自动转换为图例条目,因此通常需要创建一个可转换的 artist。 图例句柄不必存在于被用到的图像或轴域上。
58+
并非所有的句柄都可以自动转换为图例条目,因此通常需要创建一个可转换的艺术家。 图例句柄不必存在于被用到的图像或轴域上。
5959

6060
假设我们想创建一个图例,其中有一些数据表示为红色:
6161

@@ -276,7 +276,7 @@ ax.plot([1, 2, 3])
276276
ax.legend(['A simple line'])
277277
```
278278

279-
但是,为了使『标签』和图例元素实例保持一致,最好在 artist 创建时指定标签,或者通过调用 artist 的`set_label()`方法:
279+
但是,为了使『标签』和图例元素实例保持一致,最好在艺术家创建时指定标签,或者通过调用艺术家的`set_label()`方法:
280280

281281
```py
282282
line, = ax.plot([1, 2, 3], label='Inline label')
@@ -285,9 +285,9 @@ line.set_label('Label via method')
285285
ax.legend()
286286
```
287287

288-
通过定义以下划线开头的标签,可以从图例元素自动选择中排除特定线条。 这对于所有 artist 都是默认的,因此不带任何参数调用`legend()`,并且没有手动设置标签会导致没有绘制图例。
288+
通过定义以下划线开头的标签,可以从图例元素自动选择中排除特定线条。 这对于所有艺术家都是默认的,因此不带任何参数调用`legend()`,并且没有手动设置标签会导致没有绘制图例。
289289

290-
为了完全控制哪些 artist 拥有图例条目,可以传递拥有图例的 artist 的可迭代对象,然后是相应图例标签的可迭代对象:
290+
为了完全控制哪些艺术家拥有图例条目,可以传递拥有图例的艺术家的可迭代对象,然后是相应图例标签的可迭代对象:
291291

292292
```py
293293
legend((line1, line2, line3), ('label1', 'label2', 'label3'))

3.9.md

+5-5
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88
99
Matplotlib 的`patheffects`模块提供了一些功能,用于将多个绘制层次应用到任何 Artist,并可以通过路径呈现。
1010

11-
可以对其应用路径效果的 Artist 包括`Patch``Line2D``Collection`,甚至文本。 每个 Artist 的路径效果都可以通过`set_path_effects`方法(`set_path_effects`)控制,它需要一个`AbstractPathEffect`的可迭代实例。
11+
可以对其应用路径效果的艺术家包括`Patch``Line2D``Collection`,甚至文本。 每个艺术家的路径效果都可以通过`set_path_effects`方法(`set_path_effects`)控制,它需要一个`AbstractPathEffect`的可迭代实例。
1212

1313
最简单的路径效果是普通效果,它简单地绘制 Artist,并没有任何效果:
1414

@@ -28,7 +28,7 @@ plt.show()
2828

2929
## 添加阴影
3030

31-
比正常效果更有趣的路径效果是阴影,我们可以应用于任何基于路径的 Artist。 `SimplePatchShadow``SimpleLineShadow`类通过在原始 Artist 下面绘制填充 Patch 或线条 Patch 来实现它
31+
比正常效果更有趣的路径效果是阴影,我们可以应用于任何基于路径的 Artist。 `SimplePatchShadow``SimpleLineShadow`类通过在基本艺术家下面绘制填充补丁或线条补丁来实现它
3232

3333
```py
3434
import matplotlib.pyplot as plt
@@ -47,9 +47,9 @@ plt.show()
4747

4848
请注意本示例中设置路径效果的两种方法。 第一个使用`with *`类,来包含“正常”效果之后的所需功能,而后者明确定义要绘制的两个路径效果。
4949

50-
## 让 Artist 脱颖而出
50+
## 让艺术家脱颖而出
5151

52-
使 Artist 在视觉上脱颖而出的一个好方法是,在实际 Artist 下面以粗体颜色绘制轮廓`Stroke`路径效果使其相对简单:
52+
使艺术家在视觉上脱颖而出的一个好方法是,在实际艺术家下面以粗体颜色绘制轮廓`Stroke`路径效果使其相对简单:
5353

5454
```py
5555
import matplotlib.pyplot as plt
@@ -71,7 +71,7 @@ plt.show()
7171

7272
您可能已经注意到,`Stroke``SimplePatchShadow``SimpleLineShadow`的关键字不是通常的`Artist`关键字(例如`facecolor``edgecolor`等)。这是因为使用这些路径效果,我们操作了 matplotlib 的较低层。实际上,接受的关键字是用于`matplotlib.backend_bases.GraphicsContextBase`实例的关键字,它们为易于创建新的后端而设计,而不是用于其用户界面。
7373

74-
## 对路径效果 Artist 的更大控制
74+
## 对路径效果艺术家的更大控制
7575

7676
如前所述,一些路径效果的操作级别低于大多数用户操作,这意味着设置关键字(如`facecolor``edgecolor`)会导致`AttributeError`。幸运的是,有一个通用的`PathPatchEffect`路径效果,它创建一个具有原始路径的`PathPatch`类。此效果的关键字与`PathPatch`相同:
7777

4.3.md

+2-2
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@
1616
| bbox | rectangle prop dict plus key 'pad' which is a pad in points |
1717
| clip_box | `matplotlib.transform.Bbox` 实例 |
1818
| clip_on | `[True / False]` |
19-
| clip_path | `Path` 实例和 `Transform` 实例,`Patch` |
19+
| clip_path | `Path``Transform``Patch` 实例 |
2020
| color | 任何 matplotlib 颜色 |
2121
| family | `[ 'serif' / 'sans-serif' / 'cursive' / 'fantasy' / 'monospace' ]` |
2222
| fontproperties | `matplotlib.font_manager.FontProperties` 实例 |
@@ -122,4 +122,4 @@ ax.set_axis_off()
122122
plt.show()
123123
```
124124

125-
![](http://matplotlib.org/_images/text_layout.png)
125+
![](http://matplotlib.org/_images/text_layout.png)

4.4.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,7 @@ matplotlib.rcParams['font.sans-serif'] = ['Source Han Sans TW', 'sans-serif']
4646
font.sans-serif: Source Han Sans TW, Ariel, sans-serif
4747
```
4848

49-
要控制每个 Artist 使用的字体,使用上面记录的`'name'``'fontname'``'fontproperties'`关键字参数。
49+
要控制每个艺术家使用的字体,使用上面记录的`'name'``'fontname'``'fontproperties'`关键字参数。
5050

5151
在 linux 上,`fc-list`是用于发现字体名称的实用工具;例如
5252

0 commit comments

Comments
 (0)