基本事項
プロット作成
|
Matplotlibプロット作成Matplotlib.pyplot を使いプロットの作成方法を示します. 目次はじめにmatplotlib を使うためには,matplotlib.pyplot インポートします.これ (matplotlib.pyplot) はプロットを作成するための関数の集合です.これに含まれる関数は,Figure (プロット領域) の作成やラベルの装飾,プロットの作成などの機能を提供します.要するに,matplotlib.pyplot インポートし,それに含まれる関数を使うとプロットの作成ができるということです. プロット作成順序matplotlib でのプロット作成順序を示します.
この WEB ページでは,プロットの作成方法の基礎と重要な三つの関数 (figure, add_subplot, savefig) を説明します. プロットの基本ここでは,Matplotlib を使ったプロット作成方法の基本を示します.具体的には,(1) matplotlib.pyplot の関数を使ったプロット作成方法,(2) add_subplot を使った複数プロット,(3) savefig を使ったプロットの保管方法です.これで,matplotlib が一通り使えると思います. とりあえずプロットプログラム例Matplotlib を使った簡単なとても簡単なプロットの例を示します.三角関数 sin(x) をプロットするプログラム (sin.py) です.プロットの作成手順は,他のプログラミング言語と同じです.プロットするデータ (x, y) を準備し,Matplotlib で作図します.具体的には以下のとおりです. import numpy as np import matplotlib.pyplot as plt x = np.arange(-np.pi, np.pi, np.pi/360) # データ x の生成 y = np.sin(x) # データ y の生成 fig=plt.figure(1, facecolor='olive') plt.xlim([-np.pi, np.pi]) plt.ylim(-1.2, 1.2) plt.plot(x, y) plt.show() plt.clf() plt.close() このプログラムの動作は,以下のとおりです.Matplotlib のコマンド (関数) は,7 — 9 行です.
実行方法と結果このプログラムは,実行コマンドは以下の通りです. > python sin.py Windows の場合 $ python3 sin.py Linux の場合 実行すると,以下のプロットが画面に現れます.その画面を消去すると,ファイル「sin.pdf」が作成されます. figure() についてfigure() は matplotlib.pyplot の関数です.その引数は以下のとおりです. figure(num=None, figsize=None, dpi=None, facecolor=None, edgecolor=None, frameon=True, FigureClass=<class 'matplotlib.figure.Figure'>, clear=False, **kwargs) この関数の戻り値は,インスタンス: Figure を返します.このインスタンスはバックエンドの new_figure_manager にも渡されます.これにより,カスタム Figure クラスを pyplot インターフェースにフックできます.追加の kwargs が Figureinit 関数に渡されます.この関数の引数の動作は以下のとおりです.
注意多くの図を作成する場合,使用していない図は明示的に pyplot.close を呼び出してクローズします.pyplot がメモリを適切にクリーンにします. 複数プロット (add_subplot)前節で示した matplotlib.pyplot を使う方法だと,ひとつの描画領域にひとつのプロットとなります.実際の解析の現場では,これは不便なことが多いです.そこで,ひとつの描画領域 (1ページ) に複数のプロットを作成する add_subplot() を使う方法を示します.ひとつのプロットで用が足りる場合も同じ方法でプロットの作成ができます.この add_subplot を使う方法は広範囲に使える方法で,私はいつもこの方法でプロットを作成します. 複数プロットを作成するための関数として,subplot() や subplots() があります.私は add_subplot() を使います. プログラム例と実行結果add_subplot() を使い,ひとつのページに複数のプロットを配置した例を以下に示します. import numpy as np import matplotlib.pyplot as plt x = np.arange(-2*np.pi, 2*np.pi, np.pi/720) # データ x の生成 y = np.sin(x) # データ y の生成 fig = plt.figure(1, facecolor='olive') ax1 = fig.add_subplot(2 ,2 ,1) ax1.set_xlim([-2*np.pi, 2*np.pi]) ax1.set_ylim([-1.2, 1.2]) ax1.plot(x, y) ax2 = fig.add_subplot(2 ,2 ,2) ax2.set_xlim([-2*np.pi, 2*np.pi]) ax2.set_ylim([-1.2, 1.2]) ax2.plot(x, y**2) ax3 = fig.add_subplot(2 ,2 ,3) ax3.set_xlim([-2*np.pi, 2*np.pi]) ax3.set_ylim([-1.2, 1.2]) ax3.plot(x, y**3) plt.show() plt.clf() plt.close() このプログラムの動作は,以下のとおりです.add_subplot() に関わるところだけ説明します.
add_subplot() についてFigure.add_subplot() は,Figure に軸を追加します.その引数は,以下のとおりです. add_subplot(nrows, ncols, index, **kwargs) 引数の動作は以下のとおりです.
プロットのファイル保管プロットを電子ファイルにする理由作成したプロットを報告書などのドキュメントファイルに挿入する場合,プロットをファイルにする必要があります.コピー & ペーストで貼り付けると,画像品質が劣化しますので,慎むべきです.高品質のドキュメントを作成するためには「プロットは電子ファイルにしそれを挿入せよ」ということです.今時のドキュメントは PDF にして配布するため,いくらでも拡大できます.元のファイルの品質が悪いと,拡大した時にボケます. プログラム例と実行結果以下にプロットを電子ファイルに保管するプログラム例を示します. import numpy as np import matplotlib.pyplot as plt theta = np.arange(-np.pi, np.pi, np.pi/720) # データ x の生成 fig=plt.figure(1, facecolor='olive') plt.xlim(-1.2, 1.2) plt.ylim(-1.2, 1.2) plt.plot(np.sin(2*theta), np.sin(3*theta)) plt.show() fig.savefig('Lissajous.pdf') plt.clf() plt.close() savefig() についてsavefig() は matplotlib.pyplot の関数です.その引数は以下のとおりです. savefig(fname, dpi=None, facecolor='w', edgecolor='w', orientation='portrait', papertype=None, format=None, transparent=False, bbox_inches=None, pad_inches=0.1, frameon=None, metadata=None) 引数の動作は以下のとおりです.
ページ作成情報参考資料
更新履歴
|