Matplotlib の Axes Divider

PythonPythonBeginner
今すぐ練習

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

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

はじめに

この実験では、Matplotlib Axes Dividerを使ってグラフ内のサブプロット用のカスタムレイアウトを作成する方法を学びます。

VMのヒント

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

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

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

必要なライブラリをインポートする

この実験に必要なライブラリをインポートして始めましょう:matplotlib.pyplot と mpl_toolkits.axes_grid1。

import matplotlib.pyplot as plt
from mpl_toolkits.axes_grid1 import Divider
import mpl_toolkits.axes_grid1.axes_size as Size

グラフと軸を設定する

fig.add_axes メソッドを使って、グラフオブジェクトを作成し、4つの軸オブジェクトを設定します。

fig = plt.figure(figsize=(5.5, 4))
rect = (0.1, 0.1, 0.8, 0.8)
ax = [fig.add_axes(rect, label="%d" % i) for i in range(4)]

軸の分割器を設定する

mpl_toolkits.axes_grid1.axes_size モジュールの Divider クラスと AxesX および AxesY クラスを使って、軸の分割器を設定します。その後、各軸の位置を設定するために new_locator メソッドを使います。

horiz = [Size.AxesX(ax[0]), Size.Fixed(.5), Size.AxesX(ax[1])]
vert = [Size.AxesY(ax[0]), Size.Fixed(.5), Size.AxesY(ax[2])]
divider = Divider(fig, rect, horiz, vert, aspect=False)

ax[0].set_axes_locator(divider.new_locator(nx=0, ny=0))
ax[1].set_axes_locator(divider.new_locator(nx=2, ny=0))
ax[2].set_axes_locator(divider.new_locator(nx=0, ny=2))
ax[3].set_axes_locator(divider.new_locator(nx=2, ny=2))

軸の範囲と外観をカスタマイズする

set_xlimset_ylim、および tick_params メソッドを使って、各軸の範囲と外観をカスタマイズします。

ax[0].set_xlim(0, 2)
ax[1].set_xlim(0, 1)
ax[0].set_ylim(0, 1)
ax[2].set_ylim(0, 2)
for ax1 in ax:
    ax1.tick_params(labelbottom=False, labelleft=False)

グラフを表示する

最後に、show メソッドを使ってグラフを表示します。

plt.show()

まとめ

この実験では、MatplotlibのAxes Dividerを使ってグラフ内のサブプロット用のカスタムレイアウトを作成する方法を学びました。グラフオブジェクトを作成し、4つの軸オブジェクトを設定し、その後、軸の分割器を使ってグリッド内に軸を配置しました。各軸の範囲と外観をカスタマイズし、show メソッドを使ってグラフを表示しました。