グラフタイトルの設定【Python】

グラフタイトルの設定

基本コード例

pyplot スタイル

pyplotのtitle関数を用います。

import numpy as np
import matplotlib.pyplot as plt
 
x = np.arange(-3, 3, 0.1)
y = np.sin(x)

plt.plot(x, y)
plt.title('Title')
plt.show()

オブジェクト指向スタイル

Axesクラスのset_titleメソッドを用います。

import numpy as np
import matplotlib.pyplot as plt

x = np.arange(-3, 3, 0.1)
y = np.sin(x)
 
fig, ax = plt.subplots()
ax.plot(x, y)
ax.set_title('Title')
plt.show()

タイトルラベルの位置を設定する

グラフタイトルはグラフ上部の左・中央・右の3か所にそれぞれ設定可能です。なお、何も指定しない場合は、中央の位置になります。

pyplot スタイル

pyplotのtitle関数のloc引数で指定します。

import numpy as np
import matplotlib.pyplot as plt
 
x = np.arange(-3, 3, 0.1)
y = np.sin(x)

plt.plot(x, y)
plt.title('Title_left', loc='left')
plt.title('Title', loc='center')
plt.title('Title_right', loc='right')
plt.show()

オブジェクト指向スタイル

Axesクラスのset_titleメソッドのloc引数で指定します。

import numpy as np
import matplotlib.pyplot as plt

x = np.arange(-3, 3, 0.1)
y = np.sin(x)
 
fig, ax = plt.subplots()
ax.plot(x, y)
ax.set_title('Title_left', loc='left')
ax.set_title('Title', loc='center')
ax.set_title('Title_right', loc='right')
plt.show()

オブジェクト指向スタイルでは、get_titleメソッドを使用することで、設定されたタイトルラベルのテキストを取得することも可能です。引数で左・中央・右のどの位置のタイトルを取得かを指定します。例えば上の例では、

import numpy as np
import matplotlib.pyplot as plt

x = np.arange(-3, 3, 0.1)
y = np.sin(x)
 
fig, ax = plt.subplots()
ax.plot(x, y)
ax.set_title('Title_left', loc='left')
ax.set_title('Title', loc='center')
ax.set_title('Title_right', loc='right')

print(ax.get_title('left'))
Title_left

タイトルラベルをグラフから離す

pad引数でグラフエリアからタイトルラベルまでの距離を指定できます。pyplotスタイルとオブジェクト指向スタイルで同じなので、オブジェクト指向スタイルのやり方を示します。

オブジェクト指向スタイル

import numpy as np
import matplotlib.pyplot as plt

x = np.arange(-3, 3, 0.1)
y = np.sin(x)
 
fig, ax = plt.subplots()
ax.plot(x, y)
ax.set_title('Title_left', loc='left')
ax.set_title('Title', loc='center')
ax.set_title('Title_right', loc='right', pad=30)
plt.show()

上の例のようにタイトル部分とグラフエリアとの距離をポイント単位で設定できます。なお、一番最後に設定したpadの値が反映されて、左・中央・右の3つのタイトルの位置が変わってしまうので、1つずつ個別に位置を指定することはできません。

また、padの指定なしのset_titleメソッドではpadはデフォルト値(6.0)が設定されるので、下のようにpadを指定した後にpadの指定なしのset_titleメソッドを書いてしまうと、デフォルト値で更新されてしまうので注意してください。

import numpy as np
import matplotlib.pyplot as plt

x = np.arange(-3, 3, 0.1)
y = np.sin(x)
 
fig, ax = plt.subplots()
ax.plot(x, y)
ax.set_title('Title_left', loc='left')
ax.set_title('Title', loc='center', pad=30)
ax.set_title('Title_right', loc='right')     # 1つ前のpad=30がデフォルト値(pad=6.0)で更新されてしまう
plt.show()

文字フォントを設定する

タイトルラベルの文字のフォントを設定します。pyplotスタイルとオブジェクト指向スタイルで同じなので、オブジェクト指向スタイルのやり方を示します。

オブジェクト指向スタイル

Axesクラスのset_titleメソッドの**kwargs引数にTextクラスのプロパティを設定することで、タイトルラベルの文字フォントを設定できます。代表的なプロパティの効果はこちらをご覧ください。

import numpy as np
import matplotlib.pyplot as plt
 
x = np.arange(-3, 3, 0.1)
y = np.sin(x)
  
fig, ax = plt.subplots()
ax.plot(x, y)
ax.set_title('Title', loc='left', color='red', fontfamily='fantasy', fontsize='xx-large')
ax.set_title('Title', backgroundcolor='red', fontfamily='fantasy', fontsize='small')
ax.set_title('Title', loc='right', alpha=0.4, fontfamily='sans-serif', fontsize='large')
plt.show()

関連記事・スポンサーリンク

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です