インストール¶
本稿では Matplotlib の(ごく限定的な環境向けの)インストール手順を記す。
Matplotlib の依存パッケージと関連パッケージをインストール¶
Python 環境を Anaconda もしくは Miniconda で実現しているのであれば、 一般のサードパーティー製 Python パッケージのインストール手順 のように作業をすればよく、この節と次の節は読み飛ばして構わない。本体が必要とする他のパッケージを自動で察知してインストールを推奨してくれるので、作業漏れが起こりにくい。
NumPy をインストール¶
Matplotlib は NumPy を多用しているので、当然これを先にインストールしておく。
See also
Pillow をインストール¶
Matplotlib の画像ファイル出力機能の裏に Pillow が働いている。
See also
PyParsing をインストール¶
必要に応じて PyParsing をインストールする。このパッケージは Matplotlib が TeX 表記を取り扱う際に利用する機能を提供する。
Matplotlib 本体をインストール¶
Python 2.7.3 環境設定時は公式インストーラーのモジュール群が動作しなかった。具体的に言うと、簡単なプロットを定義した後に matplotlib.pyplot.show()
すると、単に白いウィンドウが出て CPU 使用率が 100% になるという挙動だった。
ものの試しに Python Extension Packages for Windows - Christoph Gohlke で配布しているインストーラーに差し替えてみたら、期待通りの動作をした。
Python 3.4 でも、どうぜ公式サイトでは 64 ビット版のビルドなどしないので、こちらのインストーラーを利用する。
アップグレード¶
Matplotlib をバージョン 1.3.1 から最新版にアップグレードしたときの模様を記す。
VC のコンパイラーを要するような特殊な Python パッケージについては、これまでは専用のインストーラーに頼っていた。ところが最近では標準 pip で環境に最適なパッケージをダウンロード、インストールするような仕組みが整備されているようだ。そういうわけで、今回のアップグレードは pip を利用した。ただし、NumPy だけは先に最新版にアップグレードしておくほうが無難だ。公式の NumPy の whl ファイルを参照するようで、これが私の環境にとっては都合が悪い。
bash$ pip install --upgrade matplotlib
Downloading/unpacking matplotlib from https://pypi.python.org/packages/cp34/m/matplotlib/matplotlib-1.4.3-cp34-none-win_amd64.whl#md5=72e96f66866523cb5974f52038d25242
Requirement already up-to-date: pytz in d:\python34\lib\site-packages (from matplotlib)
Requirement already up-to-date: six>=1.4 in d:\python34\lib\site-packages (from matplotlib)
Requirement already up-to-date: pyparsing>=1.5.6 in d:\python34\lib\site-packages (from matplotlib)
Requirement already up-to-date: numpy>=1.6 in d:\python34\lib\site-packages (from matplotlib)
Requirement already up-to-date: python-dateutil in d:\python34\lib\site-packages (from matplotlib)
Installing collected packages: matplotlib
Found existing installation: matplotlib 1.4.2
Uninstalling matplotlib:
Successfully uninstalled matplotlib
Successfully installed matplotlib
Cleaning up...
matplotlib-1.4.3-cp34-none-win_amd64.whl
というアーカイブ名から、当方の環境 (Python 3.4, Windows 7 64bit) を考慮していることが窺える。Found existing installation: matplotlib 1.4.2
とあるが、実際には 1.4.3 にアップグレードにされた。
Python 3.5¶
理由は忘れたが上記の方法がうまく行かなかったので、Python Extension Packages for Windows - Christoph Gohlke が配布するインストーラーに頼った。
パッケージのビルドに利用している MSVC のバージョンに対応するランタイムが環境に必要なことに注意。特に
msvcpxxx.dll
がない可能性がある。
動作確認¶
Matplotlib の初回インストールまたはアップグレード直後に確認することを記す。
バージョンを確認する¶
Matplotlib のモジュールから直接バージョン番号を得ることで確認するには次のようにする:
bash$ python -c 'import matplotlib as mpl; print(mpl.__version__)'
1.4.3
Anaconda または Miniconda で Python 環境を管理しているのであれば、コマンドラインで conda を用いる:
bash$ conda list matplotlib
# packages in environment at D:\Miniconda3:
#
matplotlib 1.5.1 np111py35_0
もしくは pip を用いる:
bash$ pip show matplotlib
---
Metadata-Version: 1.1
Name: matplotlib
Version: 1.5.1
Summary: Python plotting package
Home-page: http://matplotlib.org
Author: John D. Hunter, Michael Droettboom
Author-email: matplotlib-users@python.org
License: BSD
Location: d:\miniconda3\lib\site-packages
Requires: numpy, python-dateutil, pytz, cycler, pyparsing
Classifiers:
Development Status :: 5 - Production/Stable
Intended Audience :: Science/Research
License :: OSI Approved :: Python Software Foundation License
Programming Language :: Python
Programming Language :: Python :: 2
Programming Language :: Python :: 3
Topic :: Scientific/Engineering :: Visualization
簡単なプロットを確認する¶
次のようなコードを実行してみて、それらしいイメージを目視で確認できたら
Matplotlib のインストールまたはアップグレードが成功したと判断してよい。ちなみに
IPython を利用する場合は、デフォルト設定でこのインポート文が省略できていきなり
plt
の別名を参照することができて楽だ。
>>> import matplotlib.pyplot as plt
>>> plt.plot(range(4))
>>> plt.show()
環境設定にも依存するが、基本的には plt.show()
の実行開始直後に下の画像のような、プロットを描画するウィンドウが現れる。
WSL 環境でのインストールにおいて Pillow 関連のエラーが出るようであれば Pillow 利用ノート の囲み記事を当たる。
ここで Segmentation fault が出るようであれば、後述するバックエンドを試行錯誤する必要がある。
ドキュメントを確保する¶
オフラインで学習する必要がある場合は、公式サイトから PDF ファイルをダウンロードして、ローカルディスクに保存する。最初のページに “Matplotlib Release 1.4.3” というタイトルと、著者の連名 “John Hunter, Darren Dale, Eric Firing, Michael Droettboom and the matplotlib development team” が書かれている(途中でページ境界を突き破っている)。
PDF ファイル全体は 2634 ページに及ぶ。
内容はナビゲーションが異なるものの、公式サイトの doc 以下と同じだ。