タイトルの付け方
タイトルをつけるにはplt.title()
or ax.set_title()
を用います。
import matplotlib.pyplot as plt
import numpy as np
x = np.arange(-10, 10, 0.01)
y = np.sin(x)
plt.plot(x, y)
plt.title('sin function')
plt.show()
import matplotlib.pyplot as plt
import numpy as np
x = np.arange(-10, 10, 0.01)
y = np.sin(x)
fig = plt.figure()
ax = fig.add_subplot()
ax.plot(x, y)
ax.set_title('sin function')
plt.show()

タイトルの位置
デフォルトのタイトル位置が気に入らなければ変更することもできます。
横方向
タイトルの横位置を変えるにはタイトルを設定する際に、loc
引数を与えてやればOK
loc
には{'left', 'center', 'right'}
の3種類を指定することができ、デフォルトは'center'
です。
plt.title('sin function', loc='right') #pyplotインターフェース
ax.set_title('sin function', loc='right') #オブジェクト指向インターフェース

またタイトルの横位置を細かく指定したければx
引数に数値を与えることで調整することができます。
plt.title('sin function', x=1.0) #pyplotインターフェース
ax.set_title('sin function', x=1.0) #オブジェクト指向インターフェース

縦方向
タイトルの縦方向はy
で調整することができます。
plt.title('sin function', y=-0.3) #pyplotインターフェース
ax.set_title('sin function', y=-0.3) #オブジェクト指向インターフェース

他にもpad
でも縦位置を指定可能です。pad
は上軸からのオフセットを設定するもので、おそらくマイナスは設定できません。
縦位置を設定するならy
の方が汎用性が高いのでy
を使うことをお勧めします。
plt.title('sin function', pad=100.0) #pyplotインターフェース
ax.set_title('sin function', pad=100.0) #オブジェクト指向インターフェース

タイトルの外見
タイトルはfontdict
で装飾が可能です
style_dict = {
'fontsize' : 30,
'fontweight' : 'bold',
'color' : 'blue'
}
ax.set_title('sin function', fontdict=style_dict) #pyplotインターフェース
plt.title('sin function', fontdict=style_dict) #オブジェクト指向インターフェース

他にもTextオブジェクトのプロパティを設定可能で、一覧は以下に掲載されています
matplotlib.text — Matplotlib 3.7.1 documentation
複数グラフでのタイトル (個別 & 全体タイトル)
複数グラフになったとしても、一つ一つのグラフへのタイトル設定のやり方は変わりません
plt.title()を実行してやればOKです
ただ、グラフ同士の間隔によってタイトルとグラフが被ってしまうので、グラフ間隔を調整しておきましょう
複数グラフの全体へのタイトル設定はplt.suptitle()
で設定ができます。
import matplotlib.pyplot as plt
import numpy as np
#データ
x = np.arange(-10, 10, 0.01)
ys = [np.sin(x), np.cos(x), np.mod(x, 3), np.exp(x)]
#グラフ
plt.subplots_adjust(hspace=0.5, wspace=0.4)
#全体のタイトル
plt.suptitle('mathmatic functions')
#plot & 個別のタイトル
for i, y in enumerate(ys):
plt.subplot(2, 2, i+1)
plt.plot(x, y)
plt.title(i+1)
plt.show()

オブジェクト指向な人はこちらのコードをどうぞ
import matplotlib.pyplot as plt
import numpy as np
#データ
x = np.arange(-10, 10, 0.01)
ys = [np.sin(x), np.cos(x), np.mod(x, 3), np.exp(x)]
#グラフ
fig = plt.figure()
fig.subplots_adjust(hspace=0.5, wspace=0.4)
#全体のタイトル
fig.suptitle('mathmatic functions')
#plot & 個別のタイトル
for i, y in enumerate(ys):
ax = fig.add_subplot(2, 2, i+1)
ax.plot(x, y)
ax.set_title(i+1)
plt.show()
コメント