はじめに
Python の Matplotlib ライブラリは、グラフで凡例を作成してカスタマイズするための柔軟な方法を提供します。凡例は、グラフに表示されるデータの明確で簡潔な説明を提供するため、どんなグラフにも不可欠なコンポーネントです。この実験では、Matplotlib オブジェクトを使用してカスタム凡例を作成するプロセスを案内します。
VM のヒント
VM の起動が完了したら、左上隅をクリックしてノートブックタブに切り替え、Jupyter Notebook を使って練習しましょう。
場合によっては、Jupyter Notebook が読み込み終わるまで数秒待つ必要があります。Jupyter Notebook の制限により、操作の検証を自動化することはできません。
学習中に問題に遭遇した場合は、Labby にお問い合わせください。セッション後にフィードバックを提供してください。すぐに問題を解決いたします。
線の描画
このステップでは、Matplotlib ライブラリを使って一連の線を描画します。まず、NumPy を使っていくつかのランダムなデータを作成します。次に、色のサイクルを指定するために cycler 関数を使ってカラーマップを設定します。最後に、plot 関数を使ってデータを描画し、凡例を生成するために legend() を呼び出します。
import matplotlib.pyplot as plt
import numpy as np
## 再現性のために乱数シードを設定
np.random.seed(19680801)
## ランダムなデータを作成
N = 10
data = (np.geomspace(1, 10, 100) + np.random.randn(N, 100)).T
## 色のサイクルを設定
cmap = plt.cm.coolwarm
plt.rcParams['axes.prop_cycle'] = cycler(color=cmap(np.linspace(0, 1, N)))
## データを描画して凡例を生成
fig, ax = plt.subplots()
lines = ax.plot(data)
ax.legend()
カスタム凡例の作成
このステップでは、Matplotlib オブジェクトを使ってカスタム凡例を作成します。まず、matplotlib.lines モジュールから Line2D クラスをインポートします。次に、色、幅、ラベル属性を持つ Line2D オブジェクトのリストを作成します。最後に、plot 関数を使って再びデータを描画し、カスタムの線と対応するラベルを使って legend() を呼び出します。
## Import Line2D class
from matplotlib.lines import Line2D
## Create custom lines
custom_lines = [Line2D([0], [0], color=cmap(0.), lw=4),
Line2D([0], [0], color=cmap(.5), lw=4),
Line2D([0], [0], color=cmap(1.), lw=4)]
## Plot data and generate custom legend
fig, ax = plt.subplots()
lines = ax.plot(data)
ax.legend(custom_lines, ['Cold', 'Medium', 'Hot'])
さまざまな Matplotlib オブジェクトを使ったカスタム凡例の作成
このステップでは、Line2D や Patch など、さまざまな Matplotlib オブジェクトを使ってカスタム凡例を作成します。まず、matplotlib.patches モジュールから Patch クラスをインポートします。次に、カスタム属性を持つ Line2D と Patch オブジェクトのリストを作成します。最後に、カスタムオブジェクトと対応するラベルを使って legend() を呼び出します。
## Import Line2D and Patch classes
from matplotlib.lines import Line2D
from matplotlib.patches import Patch
## Create legend elements
legend_elements = [Line2D([0], [0], color='b', lw=4, label='Line'),
Line2D([0], [0], marker='o', color='w', label='Scatter',
markerfacecolor='g', markersize=15),
Patch(facecolor='orange', edgecolor='r',
label='Color Patch')]
## Plot data and generate custom legend
fig, ax = plt.subplots()
ax.legend(handles=legend_elements, loc='center')
まとめ
この実験では、Matplotlib オブジェクトを使ってカスタム凡例を作成する方法を学びました。まず、一連の線を描画してデフォルトの凡例を生成することから始めました。次に、カスタム属性を持つ Line2D オブジェクトを使ってカスタム凡例を作成しました。最後に、Line2D や Patch など、さまざまな Matplotlib オブジェクトを使ってカスタム凡例を作成しました。カスタム凡例を使うことで、グラフに表示されるデータの明確で簡潔な説明を提供することができます。