はじめに
Matplotlib は、Python プログラミング言語用のデータ可視化ライブラリです。さまざまな種類のグラフやチャートを作成するための幅広いツールを提供します。Matplotlib の GridSpec モジュールを使用すると、サブプロットの柔軟で複雑なレイアウトを作成できます。このチュートリアルでは、GridSpec を使用して多列/行のサブプロットレイアウトを作成する方法を学びます。
VM のヒント
VM の起動が完了したら、左上隅をクリックしてノートブックタブに切り替え、Jupyter Notebook を使って練習しましょう。
時々、Jupyter Notebook が読み込み終了するまで数秒待つ必要がある場合があります。Jupyter Notebook の制限により、操作の検証を自動化することはできません。
学習中に問題に遭遇した場合は、Labby にお問い合わせください。セッション後にフィードバックを提供してください。すぐに問題を解決いたします。
必要なライブラリをインポートする
まず、必要なライブラリをインポートする必要があります。Matplotlib と GridSpec を使用します。
import matplotlib.pyplot as plt
from matplotlib.gridspec import GridSpec
グラフを作成する
次に、plt.figure() 関数を使用してグラフを作成する必要があります。サブプロットがグラフ内に収まるようにするため、layout パラメータを "constrained" に設定できます。
fig = plt.figure(layout="constrained")
GridSpec を作成する
GridSpec() 関数を使用して、GridSpec オブジェクトを作成できます。グリッドに必要な行数と列数を指定する必要があります。この例では、3x3 のグリッドを作成します。
gs = GridSpec(3, 3, figure=fig)
GridSpec にサブプロットを追加する
fig.add_subplot() 関数を使用して、GridSpec にサブプロットを追加できます。GridSpec オブジェクトのインデックス表記を使用して、グリッド内のサブプロットの位置を指定できます。たとえば、gs[0, :] は 1 行目とすべての列を指定します。
ax1 = fig.add_subplot(gs[0, :])
ax2 = fig.add_subplot(gs[1, :-1])
ax3 = fig.add_subplot(gs[1:, -1])
ax4 = fig.add_subplot(gs[-1, 0])
ax5 = fig.add_subplot(gs[-1, -2])
サブプロットをカスタマイズする
必要に応じてサブプロットをカスタマイズできます。たとえば、fig.suptitle() 関数を使用してグラフのタイトルを設定し、format_axes() 関数を使用して軸をフォーマットできます。
fig.suptitle("GridSpec")
def format_axes(fig):
for i, ax in enumerate(fig.axes):
ax.text(0.5, 0.5, "ax%d" % (i+1), va="center", ha="center")
ax.tick_params(labelbottom=False, labelleft=False)
format_axes(fig)
グラフを表示する
最後に、plt.show() 関数を使用してグラフを表示できます。
plt.show()
まとめ
このチュートリアルでは、Matplotlib で GridSpec を使用して多列/行のサブプロットレイアウトを作成する方法を学びました。3x3 のグリッドを作成し、そこにサブプロットを追加しました。サブプロットをカスタマイズし、グラフを表示しました。GridSpec は、Matplotlib で複雑なサブプロットレイアウトを作成するための強力なツールです。