はじめに
この記事では、Matplotlibを使って1つのウィンドウに複数のグラフを効率的に配置・表示するための様々な方法について解説します。
モジュールのインポート
ひとつのグラフを表示
subplotによる方法
plt.subplot(111)

plt.figure()を使用してfigureオブジェクトを作成し、ax = plt.subplot(111)とすることでグラフを描画できます。
plt.subplot(1,1,1)

plt.subplot(1,1,1)としても同様のグラフが生成されます。
figureのサイズ変更

figsize=(4,6)を指定すると、横4インチ、縦6インチのグラフを作成できます。figsizeのデフォルト値は(6,4)です。
複数のグラフを表示
plt.subplot()による方法


subplot(211)とsubplot(212)を使うと縦に並んだグラフを、subplot(121)とsubplot(122)を使うと横に並んだグラフを作成できます。
211は「2行1列の1番目(上段)」を意味し、212は「2行1列の2番目(下段)」を意味します。
同様に、121は「1行2列の1番目(左側)」を意味し、122は「1行2列の2番目(右側)」を意味します。
add_subplot()による方法

fig.add_subplot()メソッドを使用することでも、plt.subplot()と同様に複数のグラフを作成することができます。
plt.subplots()による方法

plt.subplots(nrows=2, ncols=2)のように行数(nrows)と列数(ncols)を設定することで、複数の整列したグラフを一度に作成できます。
ax.ravel()を使うとaxを一次元配列に展開でき、整数インデックスでaxを選択できるようになります。このとき、グラフは左上から右下の順に番号付けされます。
sharex, shareyによる目盛りラベルの簡素化

sharex、shareyパラメータをTrueに設定すると、すべてのグラフで軸の範囲が統一され、目盛りラベルは外側のみに表示されます。
GridSpec()について

GridSpec()を使用すると、表示領域をグリッド状に分割でき、ax4 = fig.add_subplot(grid[1:, 1:])のように特定の範囲を指定することで、より柔軟性の高い複数グラフのレイアウトを作成できます。
コメント