【Python】Matplotlibのsubplotで複数グラフを表示する方法

  • URLをコピーしました!

今回は、Matplotlibのsubplotモジュールを使用し、グラフを複数並べて表示する方法を紹介します。

複数のグラフを並べることで、グラフ同士を比較することもできます。

目次

subplotとは

subplotは、Matplotlibライブラリのモジュールのひとつです。

ひとつのキャンバス(図)内に、複数のグラフを表示するため機能です。

グラフを並べることで、グラフ同士を比較することもできます。

データ分析をする際に便利なモジュールです。

複数のグラフを並べると以下の図のようになります。

subplotの使い方

subplotの使い方は以下の通りです。

plt.subplot(rows, cols, index)

rows: 行数

cols: 列数

index: 何番目のグラフか

これらの引数に何を指定するべきかは以下の図をみるとイメージしやすいと思います。

rowscolsでグラフをいくつでどのように並べたいか指定します。

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講座 icon 【世界で55万人が受講】データサイエンティストを目指すあなたへ〜データサイエンス25時間ブートキャンプ〜 icon

他のUdemyの講座が気になる方はこちら

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

この記事を書いた人

エンジニア。20代。組み込みエンジニアとして働き始めるも、働き方や業務内容に限界を感じ、 AI,Web3エンジニアを目指して勉強中。 エンジニアとして思うことや、学んだことを発信します。

目次