Pythonで複数のグラフを一括表示 Matplotlib その6:subplotでのタイトルの表示: suptitle、title

スポンサーリンク

グラフ一括表示の際のタイトルの表示

前回はsubplotsでグラフを一括表示した際にタイトルを表示する方法を解説しました。

Pythonで複数のグラフを一括表示 Matplotlib その5:subplotsでのタイトルの表示: suptitle、set_title
グラフ一括表示の際のタイトルの表示前回、subplots、subplotでのX軸、Y軸の表示範囲を指定する方法を解説しました。今回はsubplotsでグラフを一括表示した際にタイトルを表示する方法を解説していきます...

今回はsubplotを使った際のタイトルの表示方法を解説していきます。

前回はsubplotsで4つのデータを2つずつ、縦に2つ並んだグラフにプロットしたデータを用いました。

今回も基本となるグラフは同様に4つのデータを2つずつ、縦に2つ並んだグラフとして、subplotを使ってプロットしてみましょう。

from matplotlib import pyplot as plt

x = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
y1 = [2, 4, 6, 8, 10, 12, 14, 16, 18, 20]
y2 = [2, 4, 8, 16, 32, 64, 128, 256, 512, 1024]
y3 = [1, 3, 5, 7, 9, 11, 13, 15, 17, 19]
y4 = [2, 3, 5, 7, 11, 13, 17, 19, 23, 29]

fig = plt.figure()

plt.subplot(2,1,1)
plt.plot(x, y1)
plt.plot(x, y2)

plt.subplot(2,1,2)
plt.plot(x, y3)
plt.plot(x, y4)

plt.show()

実行結果

ということでこのプログラムをもとにタイトルを追加していきます。

また前回解説した通り、タイトルとしてはグラフ全体のタイトルとそれぞれのグラフのタイトルと2種類あります。

まずはグラフ全体のタイトルを表示させてみましょう。

スポンサーリンク

グラフ全体のタイトルの表示

前回、subplotsを使った際、グラフ全体のタイトルを表示する際には「suptitle(“タイトル”)」を用いました。

subplotでもこのコマンドが使えるのでしょうか?

とりあえず試してみましょう。

from matplotlib import pyplot as plt

x = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
y1 = [2, 4, 6, 8, 10, 12, 14, 16, 18, 20]
y2 = [2, 4, 8, 16, 32, 64, 128, 256, 512, 1024]
y3 = [1, 3, 5, 7, 9, 11, 13, 15, 17, 19]
y4 = [2, 3, 5, 7, 11, 13, 17, 19, 23, 29]

fig = plt.figure()

plt.subplot(2,1,1)
plt.plot(x, y1)
plt.plot(x, y2)

plt.subplot(2,1,2)
plt.plot(x, y3)
plt.plot(x, y4)

plt.suptitle("Title", fontsize=20)

plt.show()

実行結果

普通に表示することができました。

グラフ全体のタイトルを表示するには、subplotsを使っても、subplotを使っても「suptitle(“タイトル”)」でいいということが分かりました。

スポンサーリンク

それぞれのグラフのタイトルを表示

ではそれぞれのグラフのタイトルを表示してみましょう。

subplotを使った際のタイトルの表示の仕方は、実はX軸、Y軸の表示範囲を指定したのと同じ考えでできます。

Pythonで複数のグラフを一括表示 Matplotlib その4:subplots、subplotでのX軸、Y軸の表示範囲指定: xlim、set_xlim、ylim、set_ylim
複数のグラフを一括表示した場合のX軸、Y軸の表示範囲指定前にsubplots、もしくはsubplotを使って複数のグラフを一括表示する方法を解説しました。今回はこの複数のグラフそれぞれのX軸、Y軸の表示範囲...

つまり通常のタイトルを表示するコマンド「title(“タイトル”)」を使うのですが、そのコマンドを追加する場所が重要。

タイトルを追加したいグラフの直下に書く必要があります。

つまりこんな感じ。

from matplotlib import pyplot as plt

x = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
y1 = [2, 4, 6, 8, 10, 12, 14, 16, 18, 20]
y2 = [2, 4, 8, 16, 32, 64, 128, 256, 512, 1024]
y3 = [1, 3, 5, 7, 9, 11, 13, 15, 17, 19]
y4 = [2, 3, 5, 7, 11, 13, 17, 19, 23, 29]

fig = plt.figure()

plt.subplot(2,1,1)
plt.plot(x, y1)
plt.plot(x, y2)
plt.title("title1")

plt.subplot(2,1,2)
plt.plot(x, y3)
plt.plot(x, y4)
plt.title("title2")

plt.suptitle("Title", fontsize=20)

plt.show()

実行結果

表示できましたが、やっぱり他の箇所とかぶってしまっています。

前回、subplotsでのタイトル表示を解説した際、「subplots_adjust」で調整できるということを紹介しました。

subplotでも「subplots_adjust」で調整できるか試してみましょう。

from matplotlib import pyplot as plt

x = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
y1 = [2, 4, 6, 8, 10, 12, 14, 16, 18, 20]
y2 = [2, 4, 8, 16, 32, 64, 128, 256, 512, 1024]
y3 = [1, 3, 5, 7, 9, 11, 13, 15, 17, 19]
y4 = [2, 3, 5, 7, 11, 13, 17, 19, 23, 29]

fig = plt.figure()

plt.subplot(2,1,1)
plt.plot(x, y1)
plt.plot(x, y2)
plt.title("title1")

plt.subplot(2,1,2)
plt.plot(x, y3)
plt.plot(x, y4)
plt.title("title2")

plt.suptitle("Title", fontsize=20)

plt.subplots_adjust(top=0.85, hspace=0.5)

plt.show()

実行結果

かぶらない様に調整できました。

ではそれぞれのグラフのタイトルのフォントサイズを変更してみましょう。

fontsize=Xをそれぞれのタイトルのコマンドに追加することで変更できます。

from matplotlib import pyplot as plt

x = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
y1 = [2, 4, 6, 8, 10, 12, 14, 16, 18, 20]
y2 = [2, 4, 8, 16, 32, 64, 128, 256, 512, 1024]
y3 = [1, 3, 5, 7, 9, 11, 13, 15, 17, 19]
y4 = [2, 3, 5, 7, 11, 13, 17, 19, 23, 29]

fig = plt.figure()

plt.subplot(2,1,1)
plt.plot(x, y1)
plt.plot(x, y2)
plt.title("title1", fontsize=20)

plt.subplot(2,1,2)
plt.plot(x, y3)
plt.plot(x, y4)
plt.title("title2", fontsize=20)

plt.suptitle("Title", fontsize=20)

plt.subplots_adjust(top=0.85, hspace=0.5)

plt.show()

実行結果

フォントサイズを変更できました。

今回はsubplotを使った際のタイトル表示の方法を解説してきました。

タイトルが入るとグッとグラフらしくなりますが、気になるのが軸名がまだ記載されていないこと。

ということで次回はsubplots、subplotでの軸名の表示方法を解説したいと思います。

ではでは今回はこんな感じで。

コメント

タイトルとURLをコピーしました