グラフを上下に分けて表示させたい場合、subplotを使うと、きれいに可視化できる!!
事前準備
import numpy as np
import matplotlib.pyplot as plt
subplot
を利用
plt.subplot(2, 1, 1)
は上下に2つグラフを作ったうちの1つ目のグラフ
plt.subplot(2, 1, 2)
は上下に2つグラフを作ったうちの2つ目のグラフ
を指します。
今回は、y=sin(x)
, とy=cos(x)
を上下に並べるようなグラフを表示してみましょう。
sample1_simple_version
# グラフの大きさを指定
plt.figure(figsize=(20, 6))
# グラフの1つ目
plt.subplot(2,1,1)
x_1 = np.linspace(-10, 10,100)
plt.plot(x_1, np.sin(x_1))
# グラフの2つ目
plt.subplot(2,1,2)
x_2 = np.linspace(-10, 10, 1000)
plt.plot(x_2, np.cos(x_2))
plt.show()
とすると、↓のようなグラフが表示されます!しっかり、グラフが上下に表示されていますね!
ただこの表示だと少し見にくいです。
・グリッド線を表示
・凡例ラベルを追加
してもう一度表示してみましょう!!
sample1_difficult_version
# グラフの大きさを指定
plt.figure(figsize=(20, 6))
# グラフの1つ目
plt.subplot(2,1,1)
x_1 = np.linspace(-10, 10,100)
plt.plot(x_1, np.sin(x_1), label='y=sin(x)')
# グリッド線を追加
plt.grid(True)
# 凡例を左側に配置
plt.legend(loc='upper left')
# グラフの2つ目
plt.subplot(2,1,2)
x_2 = np.linspace(-10, 10, 1000)
plt.plot(x_2, np.cos(x_2), label='y=cos(x)')
# グリッド線を追加
plt.grid(True)
# 凡例を左側に追加
plt.legend(loc='upper left')
とすると、↓のようなグラフが表示されます!とても見やすくなりました。
発展~左右にグラフを並べてみる~
さっきの応用で、subplot()の引数を以下のように変えてみます。
plt.subplot(1, 2, 1)
は左右に2つグラフを作ったうちの1つ目のグラフ
plt.subplot(1, 2, 2)
は左右に2つグラフを作ったうちの2つ目のグラフ
を指します。
# グラフの大きさを指定
plt.figure(figsize=(5, 5))
# グラフの1つ目
plt.subplot(1,2,1)
x_1 = np.linspace(-np.pi/2, np.pi/2,100)
plt.plot(x_1, np.sin(x_1), label='y=sin(x)')
# グリッド線を追加
plt.grid(True)
# 凡例を左側に配置
plt.legend(loc='upper left')
# グラフの2つ目
plt.subplot(1,2,2)
x_2 = np.linspace(-np.pi/2, np.pi/2, 1000)
plt.plot(x_2, np.cos(x_2), label='y=cos(x)')
# グリッド線を追加
plt.grid(True)
# 凡例を左側に追加
plt.legend(loc='upper left')