【matplotlib】フォントサイズ指定はfontsize=Xか{“fontsize”:X}か?(title, suptitle)[Python]

  • URLをコピーしました!
目次

フォントサイズの指定の仕方

subplotsを使って複数のグラフを表示の仕方を解説した時、タイトルのフォントサイズを変えるのに「fontsize = X」という記述の仕方をしました。

しかし前にグラフのタイトルの表示方法を解説した時には「{“fontsize”: X}」という記述の仕方をしました。

私自身、最初の頃には「{“fontsize”: X}」が正しいと思っていたのですが、最近では「fontsize = X」という記述の仕方をしていて、ちょっと混乱しています。

ということで今回はグラフ表示をする時の色々な文字のサイズを変えるのに「fontsize = X」、「{“fontsize”: X}」のどちらも全く同じように使えるのか、それとも使えたり、使えなかったりするのか試してみたいと思います。

試すのは、タイトルを表示するtitle、suptitle、軸名を表示するxlabel、ylabel、set_xlabel、set_ylabel、軸の数値の表示を変えるtick_paramsを試してみます。

また凡例(legend)のフォントサイズは「prop={“size”: 20}」と記述していたのでついでにこれも「fontsize=X」や「{“fontsize”: X}」と記述できるか試してみましょう。

titleのフォントサイズ

まずはtitleのフォントサイズの記述を試してみます。

基本となるプログラムはこちらです。

from matplotlib import pyplot as plt

y_value = [1, 2, 4, 8, 16, 32, 64, 128, 256, 1028]
x_value = range(1, len(y_value)+1)

plt.plot(x_value, y_value)

plt.title("title")

plt.show()

実行結果

「{“fontsize”: X}」でフォントサイズを指定してみます。

from matplotlib import pyplot as plt

y_value = [1, 2, 4, 8, 16, 32, 64, 128, 256, 1028]
x_value = range(1, len(y_value)+1)

plt.plot(x_value, y_value)

plt.title("title", {"fontsize": 20})

plt.show()

実行結果

「title」のフォントサイズが大きくなりました。

次に「fontsize=X」で指定してみます。

from matplotlib import pyplot as plt

y_value = [1, 2, 4, 8, 16, 32, 64, 128, 256, 1028]
x_value = range(1, len(y_value)+1)

plt.plot(x_value, y_value)

plt.title("title", fontsize=20)

plt.show()

実行結果

こちらも「title」のサイズが大きくなりました。

つまりtitleに対しては「{“fontsize”: X}」でも「fontsize=X」でもどちらでも大丈夫です。

suptitleのフォントサイズ

次に複数のグラフを一括表示した際に用いた「suptitle」でも試してみましょう。

ちなみにこの「suptitle」は複数のグラフを一括表示した場合だけでなく、一つのグラフだけの時でも使用することができます。

ということで先ほどのプログラムを用いて試してみます。

まずは「{“fontsize”: X}」から。

from matplotlib import pyplot as plt

y_value = [1, 2, 4, 8, 16, 32, 64, 128, 256, 1028]
x_value = range(1, len(y_value)+1)

plt.plot(x_value, y_value)

plt.suptitle("suptitle", {"fontsize": 20})

plt.show()

実行結果
---------------------------------------------------------------------------
TypeError                                 Traceback (most recent call last)
<ipython-input-19-ae8cb474caff> in <module>
      6 plt.plot(x_value, y_value)
      7 
----> 8 plt.suptitle("suptitle", {"fontsize": 20})
      9 
     10 plt.show()

TypeError: suptitle() takes 1 positional argument but 2 were given

前に試した時のようにエラーがでました。

次に「fontsize=X」。

from matplotlib import pyplot as plt

y_value = [1, 2, 4, 8, 16, 32, 64, 128, 256, 1028]
x_value = range(1, len(y_value)+1)

plt.plot(x_value, y_value)

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

plt.show()

実行結果

suptitleでは「{“fontsize”: X}」は使えず、「fontsize=X」のみが使えました。

まとめ

今回はtitle、suptitleに対してフォントサイズの指定方法「{“fontsize”: X}」と「fontsize=X」を試してみました。

結果としてはtitleに対してはどちらも問題なく使えますが、suptitleには{“fontsize”: X}」は使えませんでしたが、「fontsize=X」は使えました。

ということで表にまとめてみるとこうなります。

fontsize=X{“fontsize”:X}
title
suptitle×

それぞれのコマンドの作り方が違うからこう言った違いがでるのでしょうが、なかなか初心者にとっては分かりづらい一面かもしれません。

次回はさらにxlabel、ylabel、set_xlabel、set_ylabelを試していきましょう。

ということで今回はこんな感じで。

よかったらシェアしてね!
  • URLをコピーしました!

コメント

コメントする

目次