Matplotlibで複数のプロットを一つの図に表示する方法

この記事では、PythonのMatplotlibライブラリを使用して、複数のプロットを一つの図に表示する方法について詳しく解説します。具体的なコード例、その詳細解説、および応用例も含めています。

目次

はじめに

データ解析や科学計算でよく使用されるPythonライブラリMatplotlib。このライブラリを使って、一つの図(Figure)上に複数のプロットを表示する方法を知っているでしょうか?この記事では基本的な方法から応用例まで詳しく解説します。

基本的なプロットの表示方法

まずは基本的なプロットの表示方法から説明します。

単一のプロット

最もシンプルな形で一つのプロットを表示する方法です。

import matplotlib.pyplot as plt
import numpy as np

# x軸とy軸のデータを作成
x = np.linspace(0, 10, 100)
y = np.sin(x)

# プロットを作成
plt.plot(x, y)
plt.show()

このコードでは、x軸とy軸に対応するデータをNumPyの配列で生成し、`plt.plot()`関数でプロットを作成しています。

複数のプロットを一つの図に表示

`subplot`を使用する方法

# 2x1のグリッドでプロット
plt.subplot(2, 1, 1)
plt.plot(x, y)
plt.title("First Plot")

plt.subplot(2, 1, 2)
plt.plot(x, np.cos(x))
plt.title("Second Plot")

plt.tight_layout()
plt.show()

`subplot`関数は、図内にプロットを配置するための「サブプロット」を生成します。第一、第二引数は行数と列数を指定し、第三引数はその中での位置を指定します。

`add_axes`を使用する方法

# 新しい図を作成
fig = plt.figure()

# サブプロットを追加
ax1 = fig.add_axes([0.1, 0.6, 0.8, 0.3])
ax2 = fig.add_axes([0.2, 0.1, 0.6, 0.3])

# プロットの描画
ax1.plot(x, y)
ax1.set_title('First Plot')

ax2.plot(x, np.cos(x))
ax2.set_title('Second Plot')

plt.show()

`add_axes`メソッドを使用することで、より自由な配置が可能です。配列で[左, 下, 幅, 高さ]を0から1の間で指定します。

応用例

グリッドラインと凡例を追加

plt.subplot(2, 1, 1)
plt.plot(x, y, label='Sine curve')
plt.title("First Plot")
plt.grid(True)
plt.legend()

plt.subplot(2, 1, 2)
plt.plot(x, np.cos(x), label='Cosine curve')
plt.title("Second Plot")
plt.grid(True)
plt.legend()

plt.tight_layout()
plt.show()

`grid`関数でグリッドラインを追加し、`legend`関数で凡例を追加しています。

サブプロット間のスペース調整

plt.subplot(2, 1, 1)
plt.plot(x, y)
plt.title("First Plot")

plt.subplot(2, 1, 2)
plt.plot(x, np.cos(x))
plt.title("Second Plot")

plt.subplots_adjust(hspace=0.4)
plt.show()

`subplots_adjust`関数を使って、サブプロット間のスペースを調整できます。ここでは`hspace`パラメータを使用しています。

まとめ

Matplotlibで複数のプロットを一つの図に表示する方法は、`subplot`や`add_axes`を使用することで比較的簡単に実装できます。応用例としては、グリッドラインや凡例の追加、サブプロット間のスペース調整などがあります。

コメント

コメントする

目次