matplotlib.pyplot – axesとsubplotによる複数グラフの表示

概要

1つのfigureの中に複数のaxesを表示する方法には、add_subplot()メソッド、subplots()メソッドの2通りがある。

add_subplot()による方法

Figure.add_subplot()は既存のfigureオブジェクトにsubplotを追加してAxesオブジェクトを生成する。

add_subplot()
figureに1つのAxesオブジェクトを生成
add_subplot(pos)
posは行数・列数・位置を表す3桁の整数。例えば234なら、2行3列のうち4番目の図。各数は当然10未満でなければならない。
add_subplot(nrows, ncols, index)
上記のposを分解して指定。行数・列数が多いときに使える。

subplots()による方法

Figure.subplots()は行数と列数を指定して各位置のaxesを配列として一度に生成する。

subplots(nrows=1, ncols=1, figsize=(6.4, 4.8))
nrowsncolssubplotの行数・列数。

戻り値はaxesの配列だが、行数・列数によって配列の次元が違ってくるので注意。

行数・列数とも1の場合(あるいはnrows、ncolsを省略した場合) Axesオブジェクトが1つ生成される。
行数・列数のいずれかが1の場合 1次元のAxesオブジェクトの配列が生成される。
行数・列数とも1より大きい場合 nrows×ncolsのサイズで2次元のAxesオブジェクトの配列が生成される。

subplotの間隔や位置調整

figure内にsubplotで配置されたグラフの間隔やマージンを調整するにはsubplots_adjust()メソッドを用いる。

それぞれのパラメーターは、Subplot内での高さ/幅を1としたときの比率でア設定する。

hspaceは高さ方向の間隔(height space)、wspaceは幅方向の間隔(width space)で、デフォルト値はhspace=wspace=0.2

left=0.125right=0.9bottom=0.1top=0.9はそれぞれsubplotの左/下からの比率で設定。

plt.subplots_adjust()として紹介されている例が多いが、figureのメソッドとしてよい。

 

 

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です