[matplotlibの使い方] 10. グラフを作成する様々な方法(subplot, add_subplot, subplots, GridSpec)

matplotlib

はじめに

matplotlibでひとつ、または、複数のグラフを作成する方法は数種類ある。ここではその中で、subplot, add_subplot, subplots, GridSpecによるグラフの作成方法について説明する。

モジュールのインポート

ひとつのグラフを表示

subplotによる方法

plt.subplot(111)

plt.figure()でfigを作成し、ax = plt.subplot(111)とすることで図を作成できる。

plt.subplot(1,1,1)

plt.subplot(1,1,1)としても同様のグラフが生成する。

figureのサイズ変更

figsize=(4,6)とすることで横4 inch、縦6 inchのグラフを作成できる。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:])のように指定すれば、より柔軟性の高い複数グラフを作成できる。

参考

matplotlib.pyplot.subplots — Matplotlib 3.1.2 documentation
matplotlib.figure.Figure — Matplotlib 3.1.2 documentation
matplotlib.pyplot.subplot — Matplotlib 3.1.2 documentation
matplotlib.pyplot.figure — Matplotlib 3.1.2 documentation
コードをダウンロード(.pyファイル)コードをダウンロード(.ipynbファイル)

コメント