今回は、Matplotlibのsubplotモジュールを使用し、グラフを複数並べて表示する方法を紹介します。
複数のグラフを並べることで、グラフ同士を比較することもできます。
subplotとは
subplotは、Matplotlibライブラリのモジュールのひとつです。
ひとつのキャンバス(図)内に、複数のグラフを表示するため機能です。
グラフを並べることで、グラフ同士を比較することもできます。
データ分析をする際に便利なモジュールです。
複数のグラフを並べると以下の図のようになります。
subplotの使い方
subplot
の使い方は以下の通りです。
plt.subplot(rows, cols, index)
rows
: 行数
cols
: 列数
index
: 何番目のグラフか
これらの引数に何を指定するべきかは以下の図をみるとイメージしやすいと思います。
rows
とcols
でグラフをいくつでどのように並べたいか指定します。
index
でグラフの配置を指定します。
左上からindex=1
で始まり、以下の図のように右下に向かって割り振られています。
複数のグラフを並べて表示
それでは実際に複数のグラフを並べてみましょう!
グラフを左右に並べて表示
まずはグラフを左右に並べる方法を紹介します!
import matplotlib.pyplot as plt
import numpy as np
# データの準備
x1 = np.arange(0, 11)
y1 = x1 * 2
# 1行2列の1番目に配置
plt.subplot(1, 2, 1)
# 1つ目のグラフをプロット
plt.plot(x1, y1)
# データの準備
x2 = np.arange(0, 11)
y2 = x2**2
# 1行2列の2番目に配置
plt.subplot(1, 2, 2)
# 2つ目のグラフをプロット
plt.plot(x2, y2)
# グラフを表示
plt.show()
実行結果
左右にグラフを並べることができました!
グラフを上下に並べて表示
続いては、グラフを上下に並べる方法を紹介します!
import matplotlib.pyplot as plt
import numpy as np
# データの準備
x1 = np.arange(0, 11)
y1 = x1 * 2
# 2行1列の1番目に配置
plt.subplot(2, 1, 1)
# 1つ目のグラフをプロット
plt.plot(x1, y1)
# データの準備
x2 = np.arange(0, 11)
y2 = x2**2
# 2行1列の2番目に配置
plt.subplot(2, 1, 2)
# 2つ目のグラフをプロット
plt.plot(x2, y2)
# グラフを表示
plt.show()
実行結果
上下に並べることができました。
グラフを複数並べて表示
これまでは2つのグラフを、左右または上下に並べる方法を紹介しましたが、
これらを組み合わせて、上下左右に 複数のグラフを並べることもできます。
コードは少し複雑になりますが、わからなくても問題ありません。
subplot
で複数グラフを表示できることさえわかっていただけば良いです!
import matplotlib.pyplot as plt
import numpy as np
# xに0-10の値を代入
x = np.arange(0, 11)
for i in range(1, 10):
# yにランダムの値を代入
y = np.random.rand(11) * 10
# 3×3に対し、i番目のグラフをプロット
plt.subplot(3, 3, i)
plt.plot(x, y)
# グラフを表示
plt.show()
実行結果
3×3に対し、for文でひとつずつグラフをプロットしています。
ランダムに取得した値でプロットしているので、実行するたびにグラフは変わります!
まとめ
今回はsubplotを使用し、グラフを複数表示する方法を紹介しました。
データ分析をしていると、複数のグラフを並べて見ることで、新しい気づきが生まれることもあります。
subplot
で複数のグラフを表示させて、データ分析をしてみてはいかかがでしょうか!
これまで読んでいただきありがとうございます!
参考
おすすめ教材
米国データサイエンティストがやさしく教えるデータサイエンスのためのPython講座 【世界で55万人が受講】データサイエンティストを目指すあなたへ〜データサイエンス25時間ブートキャンプ〜他のUdemyの講座が気になる方はこちら