Matplotlib GridSpec レイアウト可視化

PythonPythonBeginner
今すぐ練習

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

💡 このチュートリアルは英語版からAIによって翻訳されています。原文を確認するには、 ここをクリックしてください

はじめに

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