本記事では、Pythonのデータ可視化ライブラリであるmatplotlibのsubplot機能に焦点を当て、その基本的な使い方や応用例を解説します。subplotを使用することで、1つの図に複数のプロットを配置して、データの比較や関係性の可視化を容易に行うことができます。以下では、具体的なコード例を交えながら、subplotの使い方を詳しく解説します。
matplotlibとは
プログラミング言語Pythonおよびその科学計算用ライブラリNumPyのためのグラフ描画ライブラリである。オブジェクト指向のAPIを提供しており、様々な種類のグラフを描画する能力を持つ。描画できるのは主に2次元のプロットだが、3次元プロットの機能も追加されてきている。描画したグラフを各種形式の画像(各種ベクトル画像形式も含む)として保存することもできる(Wiki参照)
matplotlib – Wikipedia
subplotの基本的な使い方
subplotを使用すると、1つの図内に複数のプロットを配置することができます。subplot関数は、行数、列数、およびプロットの位置を指定します。以下はその基本的な使い方です。
import matplotlib.pyplot as plt
# 2x2のサブプロットを作成し、1番目のサブプロットにプロットします
plt.subplot(2, 2, 1)
plt.plot([1, 2, 3, 4], [1, 4, 9, 16], 'ro') # 'ro'は赤い点を意味します
# 2x2のサブプロットを作成し、2番目のサブプロットにプロットします
plt.subplot(2, 2, 2)
plt.plot([1, 2, 3, 4], [1, 4, 9, 16], 'b-') # 'b-'は青い線を意味します
# 2x2のサブプロットを作成し、3番目のサブプロットにプロットします
plt.subplot(2, 2, 3)
plt.plot([1, 2, 3, 4], [1, 4, 9, 16], 'g^') # 'g^'は緑色の三角形を意味します
# 2x2のサブプロットを作成し、4番目のサブプロットにプロットします
plt.subplot(2, 2, 4)
plt.plot([1, 2, 3, 4], [1, 4, 9, 16], 'c--') # 'c--'はシアンの点線を意味します
plt.show()
上記のコードでは、4つのサブプロットが2×2の配置で作成され、それぞれに異なるプロットが表示されます。各subplot関数の引数は、行数、列数、およびプロットの位置を指定します。たとえば、subplot(2, 2, 1)は2行2列のグリッド内の1番目の位置を指定します。
問題なくプロットされてます。
応用:三つのグラフを上に一つ下に二つ並べたい
上下に2つのグラフを配置する場合は、2行1列のサブプロットを作成する必要があります。ただ、下の行は2つの列に分割する必要があります。以下は、そのようなレイアウトを実現するためのコード例です。
import matplotlib.pyplot as plt
import numpy as np
# データを生成します
x = np.linspace(0, 2 * np.pi, 400)
y1 = np.sin(x)
y2 = np.cos(x)
y3 = np.tan(x)
# サブプロットを作成します
plt.subplot(2, 2, (1, 2)) # 上に1つのグラフを配置するため、2x2のレイアウトで1番目と2番目の位置を指定します
plt.plot(x, y1, 'r-', label='Sine') # サイン関数のプロット
plt.legend() # 凡例を表示します
plt.subplot(2, 2, 3) # 下に2つのグラフを配置するため、2x2のレイアウトで3番目の位置を指定します
plt.plot(x, y2, 'b--', label='Cosine') # コサイン関数のプロット
plt.legend() # 凡例を表示します
plt.subplot(2, 2, 4) # 下に2つのグラフを配置するため、2x2のレイアウトで4番目の位置を指定します
plt.plot(x, y3, 'g-.', label='Tangent') # タンジェント関数のプロット
plt.legend() # 凡例を表示します
plt.tight_layout() # レイアウトを整えます
plt.show()
subplot関数の引数には、行数、列数、およびプロットの位置を指定します。(1, 2)のように範囲を指定することで、複数の位置を1つのサブプロットとして扱うことができます。
まとめ
本記事では、matplotlibのsubplot機能について解説しました。subplotを使用することで、1つの図に複数のプロットを配置して、データの比較や関係性の可視化を容易に行うことができます。subplotはデータ解析や可視化において非常に便利なツールであり、ぜひ活用してみてください。
コメント