Pythonで複数のグラフを一括表示 Matplotlib その10:subplots、subplotでの軸の数値のサイズ変更

スポンサーリンク

軸の数値のサイズ変更

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

Pythonで複数のグラフを一括表示 Matplotlib その9:グラフ間の隙間の調整: subplots_adjust
subplots_adjust前回、subplot、subplotsでの凡例の表示方法を解説しました。今回は前に「今度解説します」と言っていたグラフ間の隙間の調整方法を解説していきます。コマンドとしては「s...

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

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

こちらは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)」を使いました。

Pythonでグラフ表示 matplotlib 〜タイトル、軸名、凡例の表示〜
タイトルを表示する前回、matplotlibを使って、グラフを表示する方法を解説しました。グラフは表示できたのですが、何とも味気ないグラフになっていましたよね。やはりグラフを表示したら、タイトルやX軸、Y軸...

実は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をコピーしました