【matplotlib】複数のグラフを一括表示:subplots、subplotでのX軸名、Y軸名の表示(xlabel、set_xlabel、ylabel、set_ylabel)[Python]

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

X軸名、Y軸名の表示

前回、subplotを使った際のタイトルの表示方法を解説しました。

今回はsubplots、subplotで複数のグラフを表示した際のX軸名、Y軸名の追加方法を解説していきます。

まずは基本となるプログラムの紹介です。

前回、タイトルを追加したのですが、ちょっと今回の解説には邪魔になるので、削除しています、

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.subplots_adjust(hspace=0.5)

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.subplots_adjust(hspace=0.5)

plt.show()

実行結果

subplots_adjustでそれぞれのグラフの隙間を少し開けて、軸名を追加した際に被らないようにしています。

subplotsを使った場合の軸名の表示

subplotsを使った場合、X軸名を表示するには「set_xlabel(“X軸名”)」、Y軸名を表示するには「set_ylabel(“Y軸名”)」を追加します。

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].set_xlabel("X1")
axes[1].set_xlabel("X2")

axes[0].set_ylabel("Y1")
axes[1].set_ylabel("Y2")

plt.subplots_adjust(hspace=0.5)

plt.show()

実行結果

それぞれのグラフにX軸名、Y軸名を追加できました。

subplotを使った場合の軸名の表示

次にsubplotを使った場合のX軸名、Y軸名の表示の方法を見てみましょう。

X軸名を追加するには「xlabel(“X軸名”)」、Y軸名を追加するには「ylabel(“Y軸名”)」でできますが、タイトルを追加した時同様、追加する場所が重要です。

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.xlabel("X1")
plt.ylabel("Y1")

plt.subplot(2,1,2)
plt.plot(x, y3)
plt.plot(x, y4)
plt.xlabel("X2")
plt.ylabel("Y2")

plt.subplots_adjust(hspace=0.5)

plt.show()

実行結果

全てのグラフ共通のX軸名、Y軸名を表示する方法

ここまで表示しているそれぞれのグラフにX軸名、Y軸名を追加する方法を解説してきました。

しかしここで一つ疑問なのが、全てのグラフに共通のX軸名、Y軸名を追加できないかということ。

もし共通の軸名を表示できれば、グラフ全体がすっきりする場合もあるでしょう。

ということでその方法を紹介しますが、また細かい解説に関しては別の機会を設けますので、暫しお待ちください。

X軸で共通の軸名を追加するには、とりあえずこのコマンドで可能です。

fig.text(0.5, 0, 'x common label', ha='center', va='center', fontsize=20)

Y軸の場合はこんな感じです。

fig.text(0, 0.5, 'y comonn label', ha='center', va='center', rotation='vertical', fontsize=20)

このコマンドはsubplotsでもsubplotでも使うことができます。

それぞれ試してみましょう。

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.subplots_adjust(hspace=0.5)

fig.text(0.5, 0, 'x common label', ha='center', va='center', fontsize=20)
fig.text(0, 0.5, 'y comonn label', ha='center', va='center', rotation='vertical', fontsize=20)

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.subplots_adjust(hspace=0.5)

fig.text(0.5, 0, 'x common label', ha='center', va='center', fontsize=20)
fig.text(0, 0.5, 'y comonn label', ha='center', va='center', rotation='vertical', fontsize=20)

plt.show()

実行結果

これでsubplots、subplotのどちらでも共通の軸名を表示することができました。

ここ数回で複数のグラフを表示するsubplots、subplotの使い方を解説してきて、グラフの作成方法、表示範囲の指定方法、タイトルの表示方法、軸名の表示方法を解説しました。

となるとまだ解説していないのが、凡例の表示方法ですので、次回は凡例の表示方法を解説したいと思います。

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

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

コメント

コメントする

目次