【Python】Matplotlibで図タイトルを下に表示させる方法

こんにちは!

皆さんはMatplotlibで図タイトルを下に表示させたいと思ったことはありませんか?

Python初心者
図タイトルを下に表示させることができないよー泣

この記事を読めば、簡単に図タイトルを下に表示させることができるようになりますよ

今回の記事では、以下の方法について紹介していきます。

  • title()で図タイトルを下に表示させる方法
  • text()で図タイトルを下に表示させる方法

棒グラフを用いて説明するので、棒グラフの描き方も押さえておきましょう。

あわせて読みたい

こんにちは! 前回の記事では、簡単なグラフの描き方として、折れ線グラフ、曲線のグラフの描き方を紹介しました。 [sitecard subtitle=あわせて読みたい url=https://py-memo.com/python/[…]

棒グラフ

title()で図タイトルを下に表示

「title()」で図タイトルを下に表示する方法を紹介します。

title()では、表示する場所をx軸、y軸を指定することができます。

つまりy軸の座標を指定すればタイトルを下に表示させることができますね!

以下のプログラムは、title()のy座標を指定して、図タイトルを下に表示するプログラムです。

import matplotlib.pyplot as plt

label = ["a", "b", "c", "d", "e"]
x, y = range(0, 5), [9, 6, 7, 8, 4]
plt.bar(x, y)

plt.title("figure1:bar", y=-0.15)

plt.show()

実行結果

y=-0.15と指定することで、図の下にタイトルが表示されるようになりました。

text()で図タイトルを下に表示

次は、「text()」を使って図タイトルを下に表示してみましょう。

この関数は、Matplotlibので作成されるグラフの様々なところに文字列を表示させる関数です。

text()を用い、位置を調整することで図の下にタイトルとして文字を表示させることができます。

では早速、図タイトルを下に表示させてみましょう。

図タイトルを下に表示させるには、Matplotlibのオブジェクト指向の考え方を使用します。

なぜオブジェクト指向の考え方を使用するかを簡単に説明すると、Matplotlibでは、図形の関係が以下の図のようになっていて、グラフ(ax)の下にタイトルを表示させるには、figにタイトルを表示させる必要があるからです。

これはオブジェクト指向の考え方を使用しないとできません。

オブジェクト指向の考え方は、よくグラフを並べて出力する際に用いられるので、以下の記事を参考にしてみてください。

参考記事

こんにちは! 皆さんはMatplotlibで作成したグラフを並べたいと思ったことはありませんか? Python初心者 2つのグラフを比較したいときは並べるね! 複数のグラフを個別に作成して、パワーポイント等で使用する際に横に並べ[…]

複数グラフを並べる

では、プログラムを見てみましょう。

以下のプログラムは、text()を用い、位置を調整して図タイトルを下に表示させるプログラムです。

import matplotlib.pyplot as plt

label = ["a", "b", "c", "d", "e"]
x, y = range(0, 5), [9, 6, 7, 8, 4]
fig = plt.figure()

ax = fig.add_subplot(111)
ax.bar(x, y, tick_label=label)
ax.set_xlabel("x")
ax.set_ylabel("y")
fig.subplots_adjust(bottom=0.15)

title = 'figure1:bar'
fig.text(0.40, 0.02, title, fontsize=18)

plt.show()

解説

fig.subplots_adjust(bottom=0.15)
グラフの下にスペースができるようになります。
図タイトルのフォントサイズ等に合わせて余白を調整しましょう。
fig.text(0.40, 0.02, title, fontsize=18)
最初の2つの引数は順にx軸の座標、y軸の座標を示しています。
軸の座標の範囲はどちらも0~1の範囲となっていて、
figの左下が(0, 0)、figの右下が(1, 0)、左上が(0, 1)となっています。

実行結果

うまく図タイトルのように下に表示されていますね!

軸の座標の指定は、タイトルの文字の先頭の座標を指定するため、タイトルの長さで位置が変わって見えてしまいます。そのため、自分で数度実行してみてちょうど真ん中あたりにタイトルの中心が来るように調整しましょう。

ちなみに、Matplotlibで日本語を使用できるようにする方法は以下の記事で紹介しています。

超簡単にできるので是非使用してみてください。

参考記事

こんにちは! 皆さんは、Matplotlibで日本語を使おうとしたことはありますか? Python初心者 Matplotlibで日本語を使おうとしたら文字化けしちゃったよー泣 残念ながら、デフォルトの状態では Matplot[…]

matplotlib日本語化

まとめ

今回の記事では、以下の方法を紹介しました。

  • title()で図タイトルを下に表示させる方法
    →y座標を指定
  • text()で図タイトルを下に表示させる方法
    →位置を指定
Python初心者
これで図タイトルを下に表示できるようになったね!

論文等の図の下に図タイトルを表示させないといけない時に上記の方法を使用してみましょう!