提交 4d6c2865 编写于 作者: W wizardforcel

fix 'figure'

上级 391b765d
......@@ -6,7 +6,7 @@
> 协议:[CC BY-NC-SA 4.0](http://creativecommons.org/licenses/by-nc-sa/4.0/)
`matplotlib.pyplot`是一个命令风格函数的集合,使`matplotlib`的机制更像 MATLAB。 每个绘图函数对图像进行一些更改:例如,创建图像,在图像中创建绘图区域,在绘图区域绘制一些线条,使用标签装饰绘图等。在`matplotlib.pyplot`中,各种状态跨函数调用保存,以便跟踪诸如当前图像和绘图区域之类的东西,并且绘图函数始终指向当前轴域(请注意,这里和文档中的大多数位置中的『轴域』(axes)是指图像的一部分(两条坐标轴围成的区域),而不是指代多于一个轴的严格数学术语)。
`matplotlib.pyplot`是一个命令风格函数的集合,使`matplotlib`的机制更像 MATLAB。 每个绘图函数对图形进行一些更改:例如,创建图形,在图形中创建绘图区域,在绘图区域绘制一些线条,使用标签装饰绘图等。在`matplotlib.pyplot`中,各种状态跨函数调用保存,以便跟踪诸如当前图形和绘图区域之类的东西,并且绘图函数始终指向当前轴域(请注意,这里和文档中的大多数位置中的『轴域』(axes)是指图形的一部分(两条坐标轴围成的区域),而不是指代多于一个轴的严格数学术语)。
```py
import matplotlib.pyplot as plt
......@@ -25,7 +25,7 @@ plt.show()
plt.plot([1, 2, 3, 4], [1, 4, 9, 16])
```
对于每个`x,y`参数对,有一个可选的第三个参数,它是指示图颜色和线条类型的格式字符串。 格式字符串的字母和符号来自 MATLAB,并且将颜色字符串与线型字符串连接在一起。 默认格式字符串为`"b-"`,它是一条蓝色实线。 例如,要绘制上面的红色圆圈,你需要执行:
对于每个`x,y`参数对,有一个可选的第三个参数,它是指示图颜色和线条类型的格式字符串。 格式字符串的字母和符号来自 MATLAB,并且将颜色字符串与线型字符串连接在一起。 默认格式字符串为`"b-"`,它是一条蓝色实线。 例如,要绘制上面的红色圆圈,你需要执行:
```py
import matplotlib.pyplot as plt
......@@ -131,9 +131,9 @@ In [70]: plt.setp(lines)
...snip
```
## 处理多个图和轴域
## 处理多个图和轴域
MATLAB 和 pyplot 具有当前图像和当前轴域的概念。 所有绘图命令适用于当前轴域。 函数`gca()`返回当前轴域(一个`matplotlib.axes.Axes`实例),`gcf()`返回当前图像`matplotlib.figure.Figure`实例)。 通常,你不必担心这一点,因为它都是在幕后处理。 下面是一个创建两个子图的脚本。
MATLAB 和 pyplot 具有当前图形和当前轴域的概念。 所有绘图命令适用于当前轴域。 函数`gca()`返回当前轴域(一个`matplotlib.axes.Axes`实例),`gcf()`返回当前图形`matplotlib.figure.Figure`实例)。 通常,你不必担心这一点,因为它都是在幕后处理。 下面是一个创建两个子图的脚本。
```py
import numpy as np
......@@ -158,28 +158,28 @@ plt.show()
这里的`figure()`命令是可选的,因为默认情况下将创建`figure(1)`,如果不手动指定任何轴域,则默认创建`subplot(111)``subplot()`命令指定`numrows``numcols``fignum`,其中`fignum`的范围是从`1``numrows * numcols`。 如果`numrows * numcols <10`,则`subplot`命令中的逗号是可选的。 因此,子图`subplot(211)``subplot(2, 1, 1)`相同。 你可以创建任意数量的子图和轴域。 如果要手动放置轴域,即不在矩形网格上,请使用`axes()`命令,该命令允许你将`axes([left, bottom, width, height])`指定为位置,其中所有值都使用小数(0 到 1)坐标。 手动放置轴域的示例请参见[`pylab_examples`示例代码:`axes_demo.py`](http://matplotlib.org/examples/pylab_examples/axes_demo.html#pylab-examples-axes-demo),具有大量子图的示例请参见[`pylab_examples`示例代码:`subplots_demo.py`](http://matplotlib.org/examples/pylab_examples/subplots_demo.html#pylab-examples-subplots-demo)
你可以通过使用递增图像编号多次调用`figure()`来创建多个图像。 当然,每个数字可以包含所需的轴和子图数量:
你可以通过使用递增图形编号多次调用`figure()`来创建多个图形。 当然,每个数字可以包含所需的轴和子图数量:
```py
import matplotlib.pyplot as plt
plt.figure(1) # 第一个图
plt.subplot(211) # 第一个图的第一个子图
plt.figure(1) # 第一个图
plt.subplot(211) # 第一个图的第一个子图
plt.plot([1, 2, 3])
plt.subplot(212) # 第一个图的第二个子图
plt.subplot(212) # 第一个图的第二个子图
plt.plot([4, 5, 6])
plt.figure(2) # 第二个图
plt.figure(2) # 第二个图
plt.plot([4, 5, 6]) # 默认创建 subplot(111)
plt.figure(1) # 当前是图 1,subplot(212)
plt.subplot(211) # 将第一个图的 subplot(211) 设为当前子图
plt.figure(1) # 当前是图 1,subplot(212)
plt.subplot(211) # 将第一个图的 subplot(211) 设为当前子图
plt.title('Easy as 1, 2, 3') # 子图 211 的标题
```
你可以使用`clf()`清除当前图像,使用`cla()`清除当前轴域。 如果你搞不清在幕后维护的状态(特别是当前的图像和轴域),不要绝望:这只是一个面向对象的 API 的简单的状态包装器,你可以使用面向对象 API(见[艺术家教程](http://matplotlib.org/users/artists.html#artist-tutorial))。
你可以使用`clf()`清除当前图形,使用`cla()`清除当前轴域。 如果你搞不清在幕后维护的状态(特别是当前的图形和轴域),不要绝望:这只是一个面向对象的 API 的简单的状态包装器,你可以使用面向对象 API(见[艺术家教程](http://matplotlib.org/users/artists.html#artist-tutorial))。
如果你正在制作大量的图像,你需要注意一件事:在一个图像用`close()`显式关闭之前,该图所需的内存不会完全释放。 删除对图像的所有引用,和/或使用窗口管理器杀死屏幕上出现的图像的窗口是不够的,因为在调用`close()`之前,`pyplot`会维护内部引用。
如果你正在制作大量的图形,你需要注意一件事:在一个图形用`close()`显式关闭之前,该图所需的内存不会完全释放。 删除对图形的所有引用,和/或使用窗口管理器杀死屏幕上出现的图形的窗口是不够的,因为在调用`close()`之前,`pyplot`会维护内部引用。
## 处理文本
......@@ -224,7 +224,7 @@ t = plt.xlabel('my data', fontsize=14, color='red')
plt.title(r'$\sigma_i=15$')
```
标题字符串之前的`r`很重要 - 它表示该字符串是一个原始字符串,而不是将反斜杠作为 python 转义处理。 `matplotlib`有一个内置的 TeX 表达式解析器和布局引擎,并且自带了自己的数学字体 - 详细信息请参阅[编写数学表达式](http://matplotlib.org/users/mathtext.html#mathtext-tutorial)。 因此,你可以跨平台使用数学文本,而无需安装 TeX。 对于安装了 LaTeX 和`dvipng`的用户,还可以使用 LaTeX 格式化文本,并将输出直接合并到显示图或保存的 postscript 中 - 请参阅[使用 LaTeX 进行文本渲染](http://matplotlib.org/users/usetex.html#usetex-tutorial)
标题字符串之前的`r`很重要 - 它表示该字符串是一个原始字符串,而不是将反斜杠作为 python 转义处理。 `matplotlib`有一个内置的 TeX 表达式解析器和布局引擎,并且自带了自己的数学字体 - 详细信息请参阅[编写数学表达式](http://matplotlib.org/users/mathtext.html#mathtext-tutorial)。 因此,你可以跨平台使用数学文本,而无需安装 TeX。 对于安装了 LaTeX 和`dvipng`的用户,还可以使用 LaTeX 格式化文本,并将输出直接合并到显示图或保存的 postscript 中 - 请参阅[使用 LaTeX 进行文本渲染](http://matplotlib.org/users/usetex.html#usetex-tutorial)
## 标注文本
......
......@@ -8,7 +8,7 @@
![](http://matplotlib.org/_images/toolbar.png)
所有图窗口都带有导航工具栏,可用于浏览数据集。 以下是工具栏底部的每个按钮的说明:
所有图窗口都带有导航工具栏,可用于浏览数据集。 以下是工具栏底部的每个按钮的说明:
![](http://matplotlib.org/_images/back.png)
......@@ -20,7 +20,7 @@
`Pan/Zoom`(平移/缩放)按钮
此按钮有两种模式:平移和缩放。 单击工具栏按钮激活平移和缩放,然后将鼠标放在轴域的某个地方。 按住鼠标左键并将其拖动到新位置来平移图形。 当你释放它时,你按下的点处的数据将移动到你释放的点。 如果在平移时按`'x'``'y'`,移动会分别限制在`x``y`轴。 按鼠标右键并将其拖动到新位置来进行缩放。 向右移动使`x`轴成比例放大,或者向左移动成比例缩小。 `y`轴和上/下移动同上。 开始缩放时鼠标下的点会保持静止,你可以缩放图中的其它任意点。 你可以使用快捷键`'x'``'y'``CONTROL`分别将缩放约束为`x`轴,`y`轴或保留宽高比。
此按钮有两种模式:平移和缩放。 单击工具栏按钮激活平移和缩放,然后将鼠标放在轴域的某个地方。 按住鼠标左键并将其拖动到新位置来平移图形。 当你释放它时,你按下的点处的数据将移动到你释放的点。 如果在平移时按`'x'``'y'`,移动会分别限制在`x``y`轴。 按鼠标右键并将其拖动到新位置来进行缩放。 向右移动使`x`轴成比例放大,或者向左移动成比例缩小。 `y`轴和上/下移动同上。 开始缩放时鼠标下的点会保持静止,你可以缩放图中的其它任意点。 你可以使用快捷键`'x'``'y'``CONTROL`分别将缩放约束为`x`轴,`y`轴或保留宽高比。
使用极坐标绘图时,平移和缩放功能的行为不同。 可以使用鼠标左键拖动半径轴标签。 可以使用鼠标右键放大和缩小半径刻度。
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册