Matplotlibのオブジェクト指向インターフェース(Axesオブジェクト)を使用して、グラフのタイトル、軸ラベル、表示範囲(リミット)、グリッド線、凡例といった基本的な構成要素を設定する方法を解説します。
データの可視化において、これらの情報はグラフを正しく読み取るために不可欠です。
目次
グラフの汎用要素を設定するサンプルコード
以下は、物理実験における「時間経過と移動距離」の関係を模したデータをプロットし、各種ラベルや範囲設定を行うコードです。
import matplotlib.pyplot as plt
# データの準備(時間と移動距離)
time_points = [0, 1, 2, 3, 4, 5]
distance_experiment_a = [0, 10, 20, 30, 40, 50]
distance_experiment_b = [0, 5, 12, 25, 45, 70]
# FigureとAxesの生成
fig = plt.figure(figsize=(8, 5))
ax = fig.add_subplot(1, 1, 1)
# データのプロット(ラベル引数は凡例で使用されます)
ax.plot(time_points, distance_experiment_a, label="Constant Velocity", marker="o")
ax.plot(time_points, distance_experiment_b, label="Acceleration", marker="x", linestyle="--")
# タイトルと軸ラベルの設定
ax.set_title("Distance vs Time Comparison")
ax.set_xlabel("Time (sec)")
ax.set_ylabel("Distance (m)")
# 軸の表示範囲(リミット)の設定
ax.set_xlim(left=0, right=6)
ax.set_ylim(bottom=0, top=80)
# グリッド線(目盛線)の表示
ax.grid(True)
# 凡例の表示(locで位置を指定可能)
ax.legend(loc="upper left")
# グラフの描画
plt.show()
コードの解説
fig.add_subplot() などで生成した Axes オブジェクト(ここでは変数 ax)に対して、各種メソッドを呼び出すことでグラフの装飾を行います。
タイトルと軸ラベル
グラフの主題や各軸が何を表しているかを明示するために使用します。
ax.set_title(str): グラフの上部にタイトルを表示します。ax.set_xlabel(str): X軸(横軸)のラベルを設定します。ax.set_ylabel(str): Y軸(縦軸)のラベルを設定します。
日本語を表示する場合は、別途フォントの設定が必要になる点に注意してください。
表示範囲(リミット)の設定
自動調整される軸の範囲を、意図的に固定したい場合に使用します。
ax.set_xlim(left, right): X軸の最小値(left)と最大値(right)を設定します。ax.set_ylim(bottom, top): Y軸の最小値(bottom)と最大値(top)を設定します。
キーワード引数を使わず ax.set_xlim(0, 6) のように引数の順番だけで指定することも可能です。
グリッド線と凡例
データの値を読み取りやすくするための補助要素です。
ax.grid(True): グリッド線(格子)を表示します。引数にTrueを渡すことで有効化されます。ax.legend(): 凡例を表示します。これを機能させるためには、ax.plot()を実行する際にlabel引数で各データの名称を指定しておく必要があります。loc引数を指定することで、凡例の配置場所(例: “upper left”, “lower right” など)を制御できます。
