Pynote

Python、機械学習、画像処理について

matplotlib - x 軸、y 軸のラベル、タイトルを設定する方法

概要

matplotlib で x 軸、y 軸のラベル、タイトルを設定する方法を紹介する。

x 軸、y 軸のラベル、タイトルを設定する。

x 軸のラベルは set_xlabel()、y 軸のラベルは set_ylabel() で指定できる。
グラフの上部に表示されるタイトルは set_title() で指定できる。
また、get_xlabel(), get_ylabel(), get_title() で現在設定されている x 軸、y 軸のラベル及びタイトルを取得することもできる。

import matplotlib.pyplot as plt
import numpy as np

np.random.seed(0)
values = 33.73 * np.random.randn(10000) + 170.69

fig, ax = plt.subplots(facecolor="w")

# ヒストグラムを描画する。
ax.hist(values, bins=50)

# x 軸のラベルを設定する。
ax.set_xlabel("height (cm)")

# y 軸のラベルを設定する。
ax.set_ylabel("frequency")

# タイトルを設定する。
ax.set_title("stature distribution")

# x 軸、y 軸のラベル及びタイトルを取得する。
print("get_xlabel()", ax.get_xlabel())  # get_xlabel() height (cm)
print("get_ylabel()", ax.get_ylabel())  # get_ylabel() frequency
print("get_title()", ax.get_title())  # get_title() stature distribution

plt.show()


ラベルのパラメータを設定する。

ラベルのフォントサイズ、色など matplotlib.text.Text オブジェクトのパラメータを指定できる。
設定可能なパラメータについては以下の記事を参照されたい。

www.pynote.info

import matplotlib.pyplot as plt
import numpy as np

np.random.seed(0)
values = 33.73 * np.random.randn(10000) + 170.69

fig, ax = plt.subplots(facecolor="w")

# ヒストグラムを描画する。
ax.hist(values, bins=50)

# x 軸のラベルを設定する。
ax.set_xlabel("height (cm)", fontsize=16)

# y 軸のラベルを設定する。
ax.set_ylabel("frequency", fontsize=16)

# タイトルを設定する。
ax.set_title("stature distribution", fontsize=20)

plt.show()


ラベルの位置を揃える。

1つの図に複数のグラフがある場合、x 軸、y 軸のラベルはデフォルトでは整列されない。
このラベルを整列したい場合は、Figure.align_labels() を呼び出す。
こうすることで x 軸、y 軸のラベルの位置を揃えることができる。

import matplotlib.pyplot as plt
import numpy as np

x = np.linspace(-5, 5, 100)
y = x ** 2

fig, [ax1, ax2] = plt.subplots(1, 2, figsize=(8, 4), facecolor="w")

ax1.plot(x, y)
ax2.plot(x, y)

ax1.set_xlabel("X label")
ax2.set_xlabel("X label")

for tick in ax1.get_xticklabels():
    tick.set_rotation(60)

# ラベルの位置を揃える。
fig.align_labels()

plt.show()