[Matplotlib入門シリーズ第3回] グラフ装飾(タイトル・軸・凡例・グリッド・表示範囲)
はじめに
本記事は「Pythonでデータを可視化するMatplotlib入門」シリーズの第3回です.
前記事では,「データを描き分ける」ことを目標にしました.
本記事では 第三者が一目見て,即座に理解できるグラフ作成 のために,
- タイトル
- 軸ラベル
- 凡例
- グリッド
- グラフの表示範囲
を説明します.
私のMatplotlibライブラリのバージョンは "3.7.0" です.
本シリーズの構成
本シリーズの構成予定(全11記事)は以下を想定しています.
- Matplotlibのインストール 〜 線グラフの描画
- 基本的な2次元プロット(線グラフ・点グラフ・複数データ・グラフの見た目)
- グラフ装飾(タイトル・軸・凡例・グリッド・表示範囲)(本記事)
- 様々なグラフ(ヒストグラム・散布図など)
- サブプロット
- 2次元図形の描画(公開後にリンクを追加する予定)
- 画像表示とヒートマップ(公開後にリンクを追加する予定)
- 3次元プロット(公開後にリンクを追加する予定)
- 3次元図形の描画(公開後にリンクを追加する予定)
- アニメーション描画1(公開後にリンクを追加する予定)
- アニメーション描画2(公開後にリンクを追加する予定)
本シリーズのゴール
本シリーズでは,以下のポイントが実装できるようになることを目標としています.
- 目的に応じたグラフを選択できるようになる
- 誰にでも分かるようなグラフを作成できるようになる
- 意図通りにアルゴリズムが動いているかのアニメーションを作成できるようになる
グラフの可視化を "判断・説明・検証" に使えるようになること.
本記事のゴール
本記事では,以下の内容を学ぶことができます.
- グラフのタイトル追加
- 軸が何を表しているかを明示
- 複数データを凡例で区別
- グリッドによる可読性の向上
- グラフの表示範囲を設定
第三者が一目見て,即座に理解できるグラフを作成できること が,本記事のゴールです.
MatplotlibライブラリとNumPyライブラリの読み込み
Matplotlibを使うためには,まずライブラリの読み込みから始めます.
NumPyにより可視化したいデータを作成し,Matplotlibによりデータを可視化します.
import matplotlib.pyplot as plt
import numpy as np
numpyライブラリを np という名前として,扱えるようにしています.
matplotlibライブラリのpyplotモジュールを plt という名前として,扱えるようにしています.
以降では plt , np という名前を使っていきます.
タイトルの追加
タイトルの追加として,下図のようなサイン関数を描画します.

タイトルを追加したグラフ
# X軸(横軸)のデータを作成
x = np.linspace(0, 10, 111)
# Y軸(縦軸)のデータをサイン関数として作成
y = np.sin(x)
# サイン関数のグラフ作成
plt.plot(x, y)
# グラフにタイトルを追加
plt.title("Sin Curve")
# 作成したグラフを画面に表示
plt.show()
plt.title() の概要,引数,戻り値に関して,下表にまとめました.
| 備考 | ||
|---|---|---|
| 概要 | タイトルの追加 | - |
| 引数 | たくさんある | 後ほど説明 |
| 戻り値 |
Textオブジェクト |
アニメーションなどの動的な処理で使用 具体的には,タイトルを後から変更する際に使用 |
使用頻度の高い plt.title() の引数を下表にまとめました.
| 引数 | 意味 | 備考 |
|---|---|---|
| label | タイトルの文字列 | 必須な引数 |
| loc | タイトルの位置 | "center":中央 "left":左寄せ "right":右寄せ |
| fontsize | フォントの大きさ | - |
| color | 文字の色 | - |
plt.title() の引数 loc, fontsize, color の設定値およびグラフを下記に示します.
| 引数 | 意味 | Fig. 1-1 | Fig. 1-2 | Fig. 1-3 |
| --- | --- | --- | --- | --- | --- |
| loc | タイトルの位置 | "center" | "left" | "right" |
| fontsize | フォントの大きさ | 14 | 18 | 24 |
| color | 文字の色 | "red" | "green" | "blue" |

Fig. 1-1

Fig. 1-2

Fig. 1-3
表に記載していない plt.title() の引数に関しては,下記サイトを確認してください.
Matplotlib公式リファレンス
タイトルは,グラフの主題を一言で説明 します.
軸ラベルの追加
軸ラベルの追加として,下図のようなサイン関数を描画します.

軸ラベルを追加したグラフ
# X軸(横軸)のデータを作成
x = np.linspace(0, 10, 111)
# Y軸(縦軸)のデータをサイン関数として作成
y = np.sin(x)
# サイン関数のグラフ作成
plt.plot(x, y)
# グラフにタイトルを追加
plt.title("Sin Curve")
# X軸(横軸)にラベルを追加
plt.xlabel("x value[rad]")
# Y軸(縦軸)にラベルを追加
plt.ylabel("sin(x)")
# 作成したグラフを画面に表示
plt.show()
plt.xlabel() の概要,引数,戻り値に関して,下表にまとめました.
| 備考 | ||
|---|---|---|
| 概要 | X軸(横軸)にラベルを追加 | - |
| 引数 | たくさんある | 後ほど説明(plt.ylabel()と同じ) |
| 戻り値 |
Textオブジェクト |
アニメーションなどの動的な処理で使用.具体的には,軸ラベルを後から変更する際に使用 |
plt.ylabel() の概要,引数,戻り値に関して,下表にまとめました.
| 備考 | ||
|---|---|---|
| 概要 | Y軸(縦軸)にラベルを追加 | - |
| 引数 | たくさんある | 後ほど説明(plt.xlabel()と同じ) |
| 戻り値 |
Textオブジェクト |
アニメーションなどの動的な処理で使用.具体的には,軸ラベルを後から変更する際に使用 |
使用頻度の高い plt.xlabel() の引数を下表にまとめました.
| 引数 | 意味 | 備考 |
|---|---|---|
| label | 軸ラベルの文字列 | 必須な引数 |
| fontsize | フォントの大きさ | - |
| loc | ラベルの位置 | "center":中央,"left":左寄せ,"right":右寄せ |
使用頻度の高い plt.ylabel() の引数を下表にまとめました.
| 引数 | 意味 | 備考 |
|---|---|---|
| label | 軸ラベルの文字列 | 必須な引数 |
| fontsize | フォントの大きさ | - |
| loc | ラベルの位置 | "center":中央,"bottom":下寄せ,"top":上寄せ |
plt.xlabel() と plt.ylabel() の引数 loc, fontsize の設定値およびグラフを下記に示します.
| 引数 | 意味 | Fig. 2-1 | Fig. 2-2 | Fig. 2-3 |
| --- | --- | --- | --- | --- | --- |
| plt.xlabel の loc | ラベルの位置 | "center" | "left" | "right" |
| plt.xlabel の fontsize | フォントの大きさ | 14 | 18 | 20 |
| plt.ylabel の loc | ラベルの位置 | "bottom" | "top" | "center" |
| plt.ylabel の fontsize | フォントの大きさ | 14 | 18 | 20 |
![plt.xlabel("x value[rad]", loc="center", fontsize=14)_plt.ylabel("sin(x)", loc="bottom", fontsize=14)のグラフ](https://storage.googleapis.com/zenn-user-upload/d0a247faa613-20260107.png)
Fig. 2-1
![plt.xlabel("x value[rad]", loc="left", fontsize=18)_plt.ylabel("sin(x)", loc="top", fontsize=18)のグラフ](https://storage.googleapis.com/zenn-user-upload/2038f4eac271-20260107.png)
Fig. 2-2
![plt.xlabel("x value[rad]", loc="right", fontsize=20)_plt.ylabel("sin(x)", loc="center", fontsize=20)のグラフ](https://storage.googleapis.com/zenn-user-upload/e3e29cc966af-20260107.png)
Fig. 2-3
表に記載していない plt.xlabel() と plt.ylabel() の引数に関しては,下記サイトを確認してください.
Matplotlib公式リファレンス
軸ラベルは,各軸の意味を明示 します.
単位を追加すると,可読性の向上 に繋がります.
凡例の追加
凡例の追加として,下図のようなサイン関数とコサイン関数を描画します.

凡例を追加したグラフ
# X軸(横軸)のデータを作成
x = np.linspace(0, 10, 111)
# Y軸(縦軸)のデータをサイン関数として作成
y_sin = np.sin(x)
# Y軸(縦軸)のデータをコサイン関数として作成
y_cos = np.cos(x)
# サイン関数のグラフ作成
plt.plot(x, y_sin, linestyle="solid", color="red", label="sin")
# コサイン関数のグラフ作成
plt.plot(x, y_cos, linestyle="dashdot", color="cyan", label="cos")
# グラフにタイトルを追加
plt.title("Sin And Cos Curve")
# X軸(横軸)にラベルを追加
plt.xlabel("x value[rad]")
# Y軸(縦軸)にラベルを追加
plt.ylabel("y value")
# 凡例を表示
plt.legend()
# 作成したグラフを画面に表示
plt.show()
plt.legend() の概要,引数,戻り値に関して,下表にまとめました.
| 備考 | ||
|---|---|---|
| 概要 | 凡例を表示 | - |
| 引数 | たくさんある | 後ほど説明 |
| 戻り値 |
Legendオブジェクト |
アニメーションなどの動的な処理で使用.具体的には,凡例の情報を後から変更する際に使用 |
使用頻度の高い plt.legend() の引数を下表にまとめます.
| 引数 | 意味 |
|---|---|
| loc | 凡例の位置 |
| fontsize | フォントの大きさ |
plt.legend() の引数である loc を変更することによって,凡例の位置を変更できます.
loc の設定値およびグラフを下記に示します.
| 設定値 | 意味 | グラフ名 |
|---|---|---|
| "upper right" | 右上 | Fig. 3-1 |
| "upper center" | 真ん中上 | Fig. 3-2 |
| "upper left" | 左上 | Fig. 3-3 |
| "center right" | 真ん中右 | Fig. 3-4 |
| "center" | 中央 | Fig. 3-5 |
| "center left" | 真ん中左 | Fig. 3-6 |
| "lower right" | 右下 | Fig. 3-7 |
| "lower center" | 真ん中下 | Fig. 3-8 |
| "lower left" | 左下 | Fig. 3-9 |
| "right" | 右 | Fig. 3-10 |

Fig. 3-1

Fig. 3-2

Fig. 3-3

Fig. 3-4

Fig. 3-5

Fig. 3-6

Fig. 3-7

Fig. 3-8

Fig. 3-9

Fig. 3-10
表に記載していない plt.legend() の引数に関しては,下記サイトを確認してください.
Matplotlib公式リファレンス
plt.legend() が重要な理由を下記にまとめました.
- 各グラフの意味を第三者に伝える
- 複数データを1つのグラフで同時描画する際に必須
グリッドの追加
グリッドの追加として,下図のようなサイン関数とコサイン関数を描画します.

グリッドを追加したグラフ
# X軸(横軸)のデータを作成
x = np.linspace(0, 10, 111)
# Y軸(縦軸)のデータをサイン関数として作成
y_sin = np.sin(x)
# Y軸(縦軸)のデータをコサイン関数として作成
y_cos = np.cos(x)
# サイン関数のグラフ作成
plt.plot(x, y_sin, linestyle="solid", color="red", label="sin")
# コサイン関数のグラフ作成
plt.plot(x, y_cos, linestyle="dashdot", color="cyan", label="cos")
# グラフにタイトルを追加
plt.title("Sin And Cos Curve")
# X軸(横軸)にラベルを追加
plt.xlabel("x value[rad]")
# Y軸(縦軸)にラベルを追加
plt.ylabel("y value")
# 凡例を表示
plt.legend()
# グリッドを表示
plt.grid(True)
# 作成したグラフを画面に表示
plt.show()
plt.grid() の概要,引数,戻り値に関して,下表にまとめました.
| 備考 | ||
|---|---|---|
| 概要 | グリッドを表示 | - |
| 引数 | たくさんある | 後ほど説明 |
| 戻り値 | なし(None) | - |
使用頻度の高い plt.grid() の引数を下表にまとめます.
| 引数 | 意味 | 備考 |
|---|---|---|
| visible | グリッドの表示/非表示 | デフォルトが表示(True) |
| which | どのグリッドを表示するか | "major":主目盛り(デフォルト),"minor":補助目盛り,"both":両方 |
| axis | どの軸にグリッドを引くか | "x":X軸のみ,"y":Y軸のみ,"both":両方(デフォルト) |
whichが"minor"を使うには,事前にplt.minorticks_on()が必須です.
plt.grid() の引数 which, axis の設定値およびグラフを下記に示します.
| 引数 | 意味 | Fig. 4-1 | Fig. 4-2 | Fig. 4-3 |
| --- | --- | --- | --- | --- | --- |
| which | どのグリッドを表示するか | "major" | "minor" | "both" |
| axis | どの軸にグリッドを引くか | "x" | "y" | "both" |

Fig. 4-1

Fig. 4-2

Fig. 4-3
表に記載していない plt.grid() の引数に関しては,下記サイトを確認してください.
Matplotlib公式リファレンス
グリッドの表示をすることで,値の読み取りが簡単 になります.
表示範囲を設定
表示範囲の設定として,下図のようなサイン関数とコサイン関数を描画します.

表示範囲を設定したグラフ
# X軸(横軸)のデータを作成
x = np.linspace(0, 10, 111)
# Y軸(縦軸)のデータをサイン関数として作成
y_sin = np.sin(x)
# Y軸(縦軸)のデータをコサイン関数として作成
y_cos = np.cos(x)
# サイン関数のグラフ作成
plt.plot(x, y_sin, linestyle="solid", color="red", label="sin")
# コサイン関数のグラフ作成
plt.plot(x, y_cos, linestyle="dashdot", color="cyan", label="cos")
# グラフにタイトルを追加
plt.title("Sin And Cos Curve")
# X軸(横軸)にラベルを追加
plt.xlabel("x value[rad]")
# Y軸(縦軸)にラベルを追加
plt.ylabel("y value")
# 凡例を表示
plt.legend()
# グリッドを表示
plt.grid(True)
# X軸(横軸)の表示範囲を設定
plt.xlim(np.min(x), np.max(x))
# Y軸(縦軸)の表示範囲を設定
plt.ylim(min(np.min(y_sin), np.min(y_cos)), max(np.max(y_sin), np.max(y_cos)))
# グラフを画面作成したグラフを画面に表示に表示
plt.show()
plt.xlim() の概要,引数,戻り値に関して,下表にまとめました.
| 備考 | ||
|---|---|---|
| 概要 | X軸(横軸)の表示範囲を設定 | - |
| 引数 | たくさんある | 後ほど説明(plt.ylim()と同じ) |
| 戻り値 | tuple |
(下限値, 上限値)が返される |
plt.ylim() の概要,引数,戻り値に関して,下表にまとめました.
| 備考 | ||
|---|---|---|
| 概要 | Y軸(縦軸)の表示範囲を設定 | - |
| 引数 | たくさんある | 後ほど説明(plt.xlim()と同じ) |
| 戻り値 | tuple |
(下限値, 上限値)が返される |
使用頻度の高い plt.xlim() と plt.ylim() の引数を下表にまとめます.
| 引数 | 意味 |
|---|---|
bottom |
下限値 |
top |
上限値 |
表示範囲を設定することで,重要な範囲を強調する ことができます.
終わりに
本記事では,Matplotlibのグラフ装飾に関する以下の内容を説明しました.
-
plt.title():グラフのタイトル(主題) -
plt.xlabel()/plt.ylabel():各軸の意味 -
plt.legend():複数データを判別するための凡例を表示 -
plt.grid():データの値を理解するためのグリッドを表示 -
plt.xlim()/plt.ylim():表示範囲を設定
次回予告
第4回では,以下のような「様々なグラフの作成」に焦点を当てます.
- ヒストグラム
- 棒グラフ
- 散布図
- 円グラフ
データに応じたグラフ作成 を実装できるようになります.
参考文献
本記事を作成するに当たって参考にしたサイトをまとめました.
Discussion