【matplotlib】複数のグラフを一括表示:subplots、subplotでの軸の数値のサイズ変更[Python]

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

軸の数値のサイズ変更

前回、複数のグラフを表示した際、それぞれのグラフ間の隙間を調整する方法を解説しました。

今回は複数のグラフを表示した時の軸の数値のサイズを変更する方法を解説していきます。

まずは基本となるプログラムから。

こちらはsubplotsを使った際の基本となるプログラム。

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()
axes= fig.subplots(2)

axes[0].plot(x, y1)
axes[0].plot(x, y2)
axes[1].plot(x, y3)
axes[1].plot(x, y4)

plt.show()

実行結果

こちらは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()

実行結果

それではまずはsubplotsから行ってみましょう。

subplotsを使った際の軸の数値のサイズ変更

前に通常のグラフでの軸の数値のサイズ変更を解説した際、変更するには「tick_params(labelsize=X)」を使いました。

実はsubplotsを使っても、同じ「tick_params(labelsize=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()
axes= fig.subplots(2)

axes[0].plot(x, y1)
axes[0].plot(x, y2)
axes[1].plot(x, y3)
axes[1].plot(x, y4)

axes[0].tick_params(labelsize=5)
axes[1].tick_params(labelsize=20)

plt.show()

実行結果

「axes= fig.subplots(2)」としているため、グラフはaxes[0]とaxes[1]の二つあります。

そのため「axes[0].tick_params(labelsize=5)」とすることで上のグラフの軸の数値のサイズを「5」に変更できます。

また同様に「axes[1].tick_params(labelsize=20)」とすることで、今後は下のグラフの軸の数値のサイズを「20」に変更できます。

簡単に言えば、プロットする時の「axes[0].plot(x, y1)」という書き方と同じというわけです。

subplotを使った際の軸の数値のサイズ変更

そしてsubplotを使った時でも同じ「tick_params(labelsize=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.tick_params(labelsize=5)

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

plt.tick_params(labelsize=20)

plt.show()

実行結果

つまりプログラムの中でこの部分が上のグラフの表示方法を指定しています。

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

plt.tick_params(labelsize=5)

またこの部分が下のグラフの表示方法を指定していると言うわけです。

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

plt.tick_params(labelsize=20)

上から順番にプログラムは進んでいくことを考えると、プログラムの分かりやすさとしてはこちらの方が分かりやすいかもしれません。

プログラミングにおいては、ある目的を達成するのに、一つの方法しかないわけではありません。

むしろ色々な方法があることを知っておく(細かいことは忘れたとしても)ことで、色々な状況に対応できる可能性が高まります。

ということで次回は、前にちょっとお話ししたフォントサイズの指定方法のfontsize=Xと{“fontsize”: X}で違いがあるのか試してみたいと思います。

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

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

コメント

コメントする

目次