はじめに
この実験では、Matplotlib でスパインをカスタマイズする方法を学びます。スパインは、軸の目盛りを結び、データ領域の境界を示す線です。デフォルトでは、Matplotlib はプロットの 4 辺すべてにスパインを表示します。ただし、データをよりよく強調するために、これらのスパインをカスタマイズしたい場合があります。
VM のヒント
VM の起動が完了したら、左上隅をクリックして ノートブック タブに切り替え、Jupyter Notebook を使って練習します。
Jupyter Notebook の読み込みには数秒かかる場合があります。Jupyter Notebook の制限により、操作の検証を自動化できません。
学習中に問題が発生した場合は、Labby にお問い合わせください。セッション後にフィードバックを提供してください。すぐに問題を解決いたします。
Matplotlib と NumPy のインポート
まず、グラフを作成するために Matplotlib と NumPy ライブラリをインポートする必要があります。グラフ用のサンプルデータを作成するために NumPy を使用します。
import matplotlib.pyplot as plt
import numpy as np
サンプルデータの作成
次に、NumPy を使ってグラフ用のサンプルデータを作成します。0 から 2π の間の 100 個のデータポイントを生成し、それに対応するサイン値を計算します。
x = np.linspace(0, 2 * np.pi, 100)
y = 2 * np.sin(x)
サブプロットの作成
異なるスパインのカスタマイズを示すために 3 つのサブプロットを作成します。ラベルが軸と重ならないようにするために制約付きレイアウトを使用します。
fig, (ax0, ax1, ax2) = plt.subplots(nrows=3, layout='constrained')
4 辺すべてのスパインのカスタマイズ
最初のサブプロットでは、プロットの 4 辺すべてにスパインを表示します。各サブプロットのスパインには、コンテナ ax.spines を使ってアクセスできます。その後、さまざまなメソッドを使ってスパインをカスタマイズできます。
ax0.plot(x, y)
ax0.set_title('Normal Spines')
下辺と左辺のスパインのカスタマイズ
2 番目のサブプロットでは、プロットの下辺と左辺のみにスパインを表示します。set_visible メソッドを使って、プロットの右辺と上辺のスパインを非表示にすることができます。
ax1.plot(x, y)
ax1.set_title('Bottom-Left Spines')
## Hide the right and top spines
ax1.spines.right.set_visible(False)
ax1.spines.top.set_visible(False)
データ範囲に制限された境界でスパインをカスタマイズする
3 番目のサブプロットでは、境界がデータ範囲に制限されたスパインを表示します。set_bounds メソッドを使って、各スパインの範囲をデータ範囲に制限することができます。
ax2.plot(x, y)
ax2.set_title('Spines with Bounds Limited to Data Range')
## Only draw spines for the data range, not in the margins
ax2.spines.bottom.set_bounds(x.min(), x.max())
ax2.spines.left.set_bounds(y.min(), y.max())
## Hide the right and top spines
ax2.spines.right.set_visible(False)
ax2.spines.top.set_visible(False)
グラフを表示する
最後に、show メソッドを使ってグラフを表示します。
plt.show()
まとめ
この実験では、Matplotlib でスパインをカスタマイズする方法を学びました。具体的には、プロットの特定の辺にスパインを表示する方法、プロットの特定の辺のスパインを非表示にする方法、および各スパインの範囲をデータ範囲に制限する方法を学びました。スパインをカスタマイズすることで、データをより良く強調し、全体的な読みやすさを向上させたグラフを作成できます。