Matplotlib GridSpec レイアウト可視化

Beginner

This tutorial is from open-source community. Access the source code

はじめに

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 で複雑なサブプロットレイアウトを作成するための強力なツールです。