====== Python モジュール: matplotlib ======
===== 概要 =====
* Python でグラフを描画するためのモジュール
===== モジュールの読み込み =====
import matplotlib.pyplot as plt
* 同時に ''numpy'' も読み込んでおくと良い。
* Ubuntu の場合は、''python-tk'' や ''python3-tk'' が必要なので、インストールしておく。\\ $ sudo apt install python-tk python3-tk
* jupyter notebook の場合は、''python-tk'' や ''python3-tk'' は不要。
===== 記法 =====
* matplotlib では以下の 2 つのインターフェース (記法) が存在する。
* オブジェクト指向: ''ax.plot'' など ax で始まるコマンドで記述する方法 (厳密に設定する場合)
* オブジェクトの構造:\\
Figure: (ウィンドウ; 描画領域)
`- Axes: グラフ描画部分
`- Axis: 軸
|- fig.axes
|- fig.patch (長方形オブジェクト; 背景色用の長方形オブジェクト)
|- fig.image
|- fig.legends (凡例)
|- fig.lines
|- fig.patches (その他の図形)
`- fig.texts
* Pyplot インターフェース: ''plt.plot'' など、plt で始まるコマンドで記述する方法 (MATLAB に類似した記法で、細かい設定はある程度、自動で設定してくれる)
* 両方のインターフェースを混在して記述することも可能だが、見栄えは悪くなる…。
* 参考サイト: [[https://qiita.com/skotaro/items/08dc0b8c5704c94eafb9 | 早く知っておきたかったmatplotlibの基礎知識、あるいは見た目の調整が捗るArtistの話 - Qiita]]
===== 操作方法 =====
* [[python/matplotlib/オブジェクト指向インターフェースでのグラフ作成 | オブジェクト指向インターフェースでのグラフ作成]]
* [[python/matplotlib/Pyplot インターフェースでのグラフ作成 | Pyplot インターフェースでのグラフ作成]]
* [[python/matplotlib/共通操作 | 共通操作]]
===== その他 =====
* [[python/matplotlib/デフォルトテーマ | デフォルトテーマ]]
===== Tips =====
==== バッチプログラムで利用する場合 ====
* バッチプログラムで matplotlib を利用すると以下のエラーメッセージが出てくる。\\
_tkinter.TclError: no display name and no $DISPLAY environment variable
* 解決するには、以下の順で ''import'' する。\\
import matplotlib
matplotlib.use('Agg')
from matplotlib import pyplot
* 参考サイト: [[https://qiita.com/itkr/items/4172c5aa6ccaa9e01b88 | [小ネタ] Pythonでimportの前に関数を実行しなければならないときの苦肉の策 - Qiita]]
==== jupyternote で利用する場合のおまじない ====
* jupyternote で使う場合は、以下のおまじないをグラフをプロットする前に記述する。
%matplotlib inline
%config InlineBackend.print_figure_kwargs = {'bbox_inches': None}
* ''%matplotlib inline'': グラフをブラウザ内に描画する場合に必要
{{tag>プログラミング}}