Matplotlib を使ったサブプロットのラベリング

PythonPythonBeginner
今すぐ練習

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

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

はじめに

Matplotlib は、Python で広く使用されるデータ可視化ライブラリです。サブプロットを含むさまざまな種類のプロットを作成するためのツールを提供します。サブプロットを作成する際、各プロットにラベルを付けることで、読者が提示されている情報を理解しやすくなります。この実験では、Matplotlib が提供するさまざまな方法を使ってサブプロットにラベルを付ける方法を学びます。

VM のヒント

VM の起動が完了したら、左上隅をクリックしてノートブックタブに切り替え、Jupyter Notebook を使って練習しましょう。

時々、Jupyter Notebook が読み込み終了するまで数秒待つ必要があります。Jupyter Notebook の制限により、操作の検証は自動化できません。

学習中に問題に遭遇した場合は、Labby にお問い合わせください。セッション後にフィードバックを提供してください。すぐに問題を解決いたします。

ライブラリのインポート

最初のステップは、必要なライブラリをインポートすることです。サブプロットを作成および変換するために、matplotlib.pyplotmatplotlib.transforms を使用します。

import matplotlib.pyplot as plt
import matplotlib.transforms as mtransforms

サブプロットの作成

次に、plt.subplot_mosaic を使ってサブプロットを作成します。3x2 のサブプロットのグリッドを作成し、以下のようにラベル付けします。

  • 左上のプロットは「a)」とラベル付けされます。
  • 左下のプロットは「b)」とラベル付けされます。
  • 右上と右下のプロットはそれぞれ「c)」と「d)」とラベル付けされます。
fig, axs = plt.subplot_mosaic([['a)', 'c)'], ['b)', 'c)'], ['d)', 'd)']], layout='constrained')

軸の内側にラベルを付ける

サブプロットにラベルを付ける最も簡単な方法は、軸の内側にラベルを置くことです。これは、ax.text メソッドを使用することで達成できます。各サブプロットをループし、ax.transAxes を使って軸の内側にラベルを追加します。

for label, ax in axs.items():
    ## label physical distance in and down:
    trans = mtransforms.ScaledTranslation(10/72, -5/72, fig.dpi_scale_trans)
    ax.text(0.0, 1.0, label, transform=ax.transAxes + trans,
            fontsize='medium', verticalalignment='top', fontfamily='serif',
            bbox=dict(facecolor='0.7', edgecolor='none', pad=3.0))

軸の外側にラベルを付ける

我々は、軸の外側にラベルを付けたい場合がありますが、それでも互いに整列させたいと思うかもしれません。この場合、少し異なる変換を使用します。

for label, ax in axs.items():
    ## label physical distance to the left and up:
    trans = mtransforms.ScaledTranslation(-20/72, 7/72, fig.dpi_scale_trans)
    ax.text(0.0, 1.0, label, transform=ax.transAxes + trans,
            fontsize='medium', va='bottom', fontfamily='serif')

タイトル付きのラベル

もし我々がラベルをタイトルと整列させたい場合、我々はそれをタイトルに組み込むか、または loc キーワード引数を使用することができます。

for label, ax in axs.items():
    ax.set_title('Normal Title', fontstyle='italic')
    ax.set_title(label, fontfamily='serif', loc='left', fontsize='medium')

サブプロットを表示する

最後に、plt.show() を使ってサブプロットを表示します。

plt.show()

まとめ

この実験では、Matplotlib でサブプロットにラベルを付けるさまざまな方法を学びました。軸の内側にラベルを付けるために ax.text を使用し、タイトル付きでラベルを付けるために ax.set_title を使用し、サブプロットを作成するために plt.subplot_mosaic を使用しました。また、matplotlib.transforms を使って軸を変換してラベルを整列させました。サブプロットにラベルを付けることで、グラフをより情報豊富で理解しやすくすることができます。