【こつこつPython】Pythonでfigureオブジェクトを作成して複数グラフを表示する方法|matplotlib.pyplot.subplots

subplotsサムネイル
こつこつPython

Pythonで複数のグラフを表示する方法です。
使用するのはPythonのmatplotlibライブラリのsubplots関数です。

import matplotlib.pyplot as plt

subplots関数はグラフをを表示するためのFigureオブジェクトとAxesオブジェクトを作成します。
1つのFigureオブジェクトに分割した数のAxesオブジェクトが入り、そのAxesオブジェクトに表示したいグラフを描画するイメージで作成していきます。

それでは、このようなデータを使用して、グラフを作成してみましょう。

x1 = [1, 2, 3, 4, 5]
y1 = [1, 5, 2, 4, 3]
x2 = [1, 2, 3, 4, 5]
y2 = [5, 1, 4, 2, 3]

まず、縦と横に2つずつ、合計4つのグラフを表示してみましょう。
最初に、subplots関数を使用してFigureオブジェクトとAxesオブジェクトを作成します。
引数に横に分割する数と縦に分割する数を指定します。
subplots関数はFigureオブジェクトとAxesオブジェクトを返すので、それぞれ変数figとaxに代入します。
実行します。

fig, ax = plt.subplots(2, 2)

それぞれ中身を確認してみましょう。

fig
ax

変数figには空白のグラフが4つ入ったFigureオブジェクトが代入され、変数axには4つのAxesオブジェクトが代入されていることが確認できました。

そして、変数axを2行2列の2次元配列と考え、インデックスを指定して、axのメソッドでグラフを作成すれば複数のグラフを表示できます。
上の2つに折れ線グラフを、下の2つに棒グラフを表示させてみましょう。
実行します。

fig, ax = plt.subplots(2, 2)
ax[0][0].plot(x1, y1)
ax[0][1].plot(x2, y2)
ax[1][0].bar(x1, y1)
ax[1][1].bar(x2, y2)
plt.show()

4つのグラフを表示できました。

なお、subplots関数は明示的にFigureオブジェクトを生成しているので、グラフ全体のタイトルなど、Figureオブジェクトのメソッドも使用できます。
確認してみましょう。
Figureオブジェクトのタイトルはsuptitleメソッドで作成できます。
実行します。

fig, ax = plt.subplots(2, 2)
fig.suptitle("title")
fig.tight_layout()
ax[0][0].plot(x1, y1)
ax[0][0].set_title("subtitle1")
ax[0][1].plot(x2, y2)
ax[0][1].set_title("subtitle2")
ax[1][0].bar(x1, y1)
ax[1][0].set_title("subtitle3")
ax[1][1].bar(x2, y2)
ax[1][1].set_title("subtitle4")
plt.show()

グラフ全体のタイトルも表示できました。

関連メソッド

【こつこつPython】Pythonで複数グラフを表示する方法|matplotlib.pyplot.subplot

【こつこつPython】PythonでFigureオブジェクトに複数グラフを表示する方法|Figure.add_subplot

【こつこつPython】PythonでFigureオブジェクトを作成する方法|matplotlib.pyplot.figure

【こつこつPython】PythonでAxesオブジェクト(グラフ)を作成する方法|matplotlib.pyplot.axes

未経験からはじめるPython学習「キノクエスト」 キノクエスト
  • スキルアップしたいけど何からはじめればよいかわからない…
  • プログラミングスクールに入りたいけど料金が高い…
  • プログラミングを学んでも業務やキャリアに活かせるか不安…

キノクエストは、このような悩みを持つ方にぴったりのプログラミング学習サービスです。
国内最大級のプログラミング学習系YouTubeチャンネル「キノコード」が提供しているから、未経験者にもわかりやすく質の高い学習体験を実感していただけます。

キノクエスト