From a72e7eaa409300f3988df6567a8641538de07170 Mon Sep 17 00:00:00 2001 From: wizardforcel <562826179@qq.com> Date: Wed, 25 Jan 2017 21:18:10 +0800 Subject: [PATCH] fix --- 2.md | 16 ++++++++-------- 8.2.md | 56 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 64 insertions(+), 8 deletions(-) diff --git a/2.md b/2.md index a890413..7986d0c 100644 --- a/2.md +++ b/2.md @@ -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 上构建 diff --git a/8.2.md b/8.2.md index 3439ce7..4a92ccb 100644 --- a/8.2.md +++ b/8.2.md @@ -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', '] +``` + +你会看到 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`的日期格式字符串。 + +## 透明度填充 + -- GitLab