提交 a72e7eaa 编写于 作者: W wizardforcel

fix

上级 c0b7cf20
......@@ -6,13 +6,13 @@
> 协议:[CC BY-NC-SA 4.0](http://creativecommons.org/licenses/by-nc-sa/4.0/)
有许多安装 matplotlib 的不同方法,最好的方法取决于使用的操作系统,已经安装的内容以及如何使用它。 为了避免涉及本页上的所有细节(和潜在的复杂性),有几个方便的选项。
有许多安装 matplotlib 的不同方法,最好的方法取决于使用的操作系统,已经安装的内容以及如何使用它。 为了避免涉及本页上的所有细节(和潜在的复杂性),有几个方便的选项。
## 安装预构建包
### 多数平台:Python 科学分发包
第一个选项是使用已经内置 matplotlib 的预打包的 Python 分发包。 `Continuum.io` Python 分发包(Anaconda 或 miniconda)和 Enthought 分发包(Canopy)都是“在 Windows,OSX 和主流 Linux 平台开箱即用并正常工作”的出色选择。 这两个分发包包括 matplotlib 和许多其他有用的工具。
第一个选项是使用已经内置 matplotlib 的预打包的 Python 分发包。 `Continuum.io` Python 分发包(Anaconda 或 miniconda)和 Enthought 分发包(Canopy)都是『在 Windows,OSX 和主流 Linux 平台开箱即用并正常工作』的出色选择。 这两个分发包包括 matplotlib 和许多其他有用的工具。
### Linux:使用你的包管理器
......@@ -40,7 +40,7 @@ python -m pip install matplotlib
Matplotlib 依赖于 Pillow 来读取和保存 JPEG,BMP 和 TIFF 图像文件。 Matplotlib 需要 MiKTeX 和 GhostScript 来使用LaTeX渲染文本。动画模块需要 FFmpeg,avconv,mencoder 或 ImageMagick。
以下后端应该开箱即用:agg,tkagg,ps,pdf 和 svg。对于其他后端,可能需要安装 pycairo,PyQt4,PyQt5,PySide,wxPython,PyGTK,Tornado 或 GhostScript。
以下后端应该开箱即用:agg,tkagg,ps,pdf 和 svg。对于其他后端,可能需要安装 pycairo,PyQt4,PyQt5,PySide,wxPython,PyGTK,Tornado 或 GhostScript。
TkAgg 可能是来自标准 Python shell 或 IPython 的,用于交互式的最佳后端。它被启用为官方二进制文件的默认后端。 Windows 不支持 GTK3。
......@@ -64,13 +64,13 @@ python setup.py build
python setup.py install
```
我们提供与`setup.py`一起使用的`setup.cfg`文件,可以使用它来自定义构建过程。 例如,要使用的默认后端,是否安装 matplotlib 附带的某些可选库,等等。 这个文件会对那些包装 matplotlib 的东西特别有用。
我们提供与`setup.py`一起使用的`setup.cfg`文件,可以使用它来自定义构建过程。 例如,要使用的默认后端,是否安装 matplotlib 附带的某些可选库,等等。 这个文件会对那些包装 matplotlib 的东西特别有用。
如果已经为非标准设施安装了必备组件,并需要通知 matplotlib 它们在哪里,请编辑`setupext.py`并将基本路径添加为`sys.platform``basedir`字典条目。 例如,如果某些所需库的头文件位于`/some/path/include/someheader.h`中,请在的平台的`basedir`列表中输入`/some/path`
如果已经为非标准设施安装了必备组件,并需要通知 matplotlib 它们在哪里,请编辑`setupext.py`并将基本路径添加为`sys.platform``basedir`字典条目。 例如,如果某些所需库的头文件位于`/some/path/include/someheader.h`中,请在的平台的`basedir`列表中输入`/some/path`
### 构建需求
这些是外部软件包,您需要在安装 matplotlib 之前安装它们。 如果您在 OSX 上构建,请参阅[在 OSX 上构建](http://matplotlib.org/users/installing.html#build-osx)。 如果您在 Windows 上构建,请参阅[在 Windows 上构建](http://matplotlib.org/users/installing.html#build-windows)。 如果在 Linux 上使用软件包管理器安装依赖项,则除了库本身之外,还可能需要安装开发包(查找`-dev`后缀)。
这些是外部软件包,你需要在安装 matplotlib 之前安装它们。 如果你在 OSX 上构建,请参阅[在 OSX 上构建](http://matplotlib.org/users/installing.html#build-osx)。 如果你在 Windows 上构建,请参阅[在 Windows 上构建](http://matplotlib.org/users/installing.html#build-windows)。 如果在 Linux 上使用软件包管理器安装依赖项,则除了库本身之外,还可能需要安装开发包(查找`-dev`后缀)。
#### 所需依赖
......@@ -127,7 +127,7 @@ setuptools 为 Python 包安装提供扩展
#### 可选的 GUI 框架
这些是可选软件包,可能希望安装这些软件包来使 用matplotlib 和用户界面工具包。 有关 matplotlib 可选后端和所提供功能的更多详细信息,请参阅[什么是后端](http://matplotlib.org/faq/usage_faq.html#what-is-a-backend)
这些是可选软件包,可能希望安装这些软件包来使 用matplotlib 和用户界面工具包。 有关 matplotlib 可选后端和所提供功能的更多详细信息,请参阅[什么是后端](http://matplotlib.org/faq/usage_faq.html#what-is-a-backend)
[tk](http://matplotlib.org/glossary/index.html#term-tk) 8.3 或更新,不包括 8.6.0 和 8.6.1
......@@ -201,7 +201,7 @@ su -c "yum-builddep python-matplotlib"
### 在 OSX 上构建
由于可以获取`libpng``freetype`需求(darwinports,fink,/usr/X11R6)的不同位置,不同的架构(例如 x86,ppc,universal)和不同的 OSX 版本 10.4 和 10.5),OSX 的构建情况很复杂。我们建议使用我们对 OSX 版本所做的方式来构建:从`tarball``git`仓库获取源代码,并按照`README.osx`中的说明进行操作。
由于可以获取`libpng``freetype`需求(darwinports,fink,/usr/X11R6)的不同位置,不同的架构(例如 x86,ppc,universal)和不同的 OSX 版本 10.4 和 10.5),OSX 的构建情况很复杂。我们建议使用我们对 OSX 版本所做的方式来构建:从`tarball``git`仓库获取源代码,并按照`README.osx`中的说明进行操作。
### 在 Windows 上构建
......
......@@ -50,3 +50,59 @@ fig, axs = plt.subplots(2, 2, sharex=True, sharey=True)
axs[0,0].plot(x)
```
## 修复常见的日期问题
matplotlib 允许你本地绘制 python datetime 实例,并且在大多数情况下,可以很好地挑选刻度位置和字符串格式。 但有几件事情它不能妥善处理,这里有一些技巧,用于帮助你解决他们。 我们将在`numpy`记录数组中加载一些包含`datetime.date`对象的示例日期数据:
```py
In [63]: datafile = cbook.get_sample_data('goog.npy')
In [64]: r = np.load(datafile).view(np.recarray)
In [65]: r.dtype
Out[65]: dtype([('date', '|O4'), ('', '|V4'), ('open', '<f8'),
('high', '<f8'), ('low', '<f8'), ('close', '<f8'),
('volume', '<i8'), ('adj_close', '<f8')])
In [66]: r.date
Out[66]:
array([2004-08-19, 2004-08-20, 2004-08-23, ..., 2008-10-10, 2008-10-13,
2008-10-14], dtype=object)
```
字段日期的`numpy`记录数组的`dtype``| O4`,这意味着它是一个 4 字节的 python 对象指针; 在这种情况下,对象是`datetime.date`实例,当我们在 ipython 终端窗口中打印一些样本时,我们可以看到。
如果你绘制数据,
```py
In [67]: plot(r.date, r.close)
Out[67]: [<matplotlib.lines.Line2D object at 0x92a6b6c>]
```
你会看到 x 轴标签重合到一起。
![](http://matplotlib.org/_images/recipes-2.png)
另一个麻烦是,如果你将鼠标悬停在窗口上,并在 x 和 y 坐标处查看 matplotlib 工具栏([交互式导航](http://matplotlib.org/users/navigation_toolbar.html#navigation-toolbar))的右下角,您会看到 x 位置的格式与刻度标签的格式相同, 例如,“Dec 2004”。 我们想要的是工具栏中的位置具有更高的精确度,例如,鼠标悬停在上面时给我们确切的日期。 为了解决第一个问题,我们可以使用[`matplotlib.figure.Figure.autofmt_xdate()`](http://matplotlib.org/api/figure_api.html#matplotlib.figure.Figure.autofmt_xdate)。修复第二个问题,我们可以使用`ax.fmt_xdata`属性,该属性可以设置为任何接受标量并返回字符串的函数。 matplotlib 有一些内置的日期格式化器,所以我们将使用其中的一个。
```py
plt.close('all')
fig, ax = plt.subplots(1)
ax.plot(r.date, r.close)
# rotate and align the tick labels so they look better
fig.autofmt_xdate()
# use a more precise date string for the x axis locations in the
# toolbar
import matplotlib.dates as mdates
ax.fmt_xdata = mdates.DateFormatter('%Y-%m-%d')
plt.title('fig.autofmt_xdate fixes the labels')
```
![](http://matplotlib.org/_images/recipes-3.png)
现在,当您将鼠标悬停在绘制的数据上,您将在工具栏中看到如`2004-12-01`的日期格式字符串。
## 透明度填充
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册