Matplotlibで複数の図を一つのウィンドウに表示する方法

Pythonの可視化ライブラリであるMatplotlibを使って、複数の図を一つのウィンドウに表示する方法について詳しく解説します。本記事では基本的な使い方から、実践的な応用例まで、具体的なコードとその解説を通じてご紹介します。

目次

Matplotlibとは

MatplotlibはPythonの2Dグラフ描画ライブラリであり、科学計算などの分野で広く利用されています。多機能ながらもシンプルなAPIを提供しているため、初心者からプロフェッショナルまで幅広く使われています。

基本的な使い方

まずはMatplotlibを使って複数の図を一つのウィンドウに表示する基本的な方法から始めます。

必要なライブラリのインストール

Matplotlibを使用するには、事前にインストールが必要です。以下のコマンドでインストールできます。

pip install matplotlib

複数の図を表示する基本的なコード

基本的なコードは以下のとおりです。

import matplotlib.pyplot as plt

# 最初の図を作成
plt.subplot(1, 2, 1)
plt.plot([1, 2, 3], [1, 4, 9])

# 二つ目の図を作成
plt.subplot(1, 2, 2)
plt.plot([1, 2, 3], [3, 2, 1])

# 表示
plt.show()

このコードでは、`subplot()`関数を用いて1行2列の配置で2つの図を作成しています。`plot()`関数でデータをプロットした後、`show()`関数でウィンドウに表示します。

応用例1: グリッド形式で複数の図を表示

さて、より多くの図をグリッド形式で表示するにはどうすればよいでしょうか。以下に具体的なコードとその解説を示します。

import numpy as np

# 2行2列のグリッド形式で4つの図を作成
fig, axs = plt.subplots(2, 2)

# データ生成
x = np.linspace(0, 5, 50)

# 図1: y = x
axs[0, 0].plot(x, x)
axs[0, 0].set_title('y = x')

# 図2: y = x^2
axs[0, 1].plot(x, x**2)
axs[0, 1].set_title('y = x^2')

# 図3: y = sin(x)
axs[1, 0].plot(x, np.sin(x))
axs[1, 0].set_title('y = sin(x)')

# 図4: y = cos(x)
axs[1, 1].plot(x, np.cos(x))
axs[1, 1].set_title('y = cos(x)')

# 表示
plt.show()

この例では、`subplots()`関数を使って2行2列のグリッド形式で図を作成しています。各図には異なる関数がプロットされ、`set_title()`でタイトルも指定しています。

応用例2: サブプロット間のスペース調整

多くの図を表示する場合、図同士が重なってしまうことがあります。この問題を解決するためには、`tight_layout()`関数を使用します。

# 2行2列のグリッド形式で図を作成
fig, axs = plt.subplots(2, 2)

# データ生成とプロット(略)

# スペース調整
plt.tight_layout()

# 表示
plt.show()

`tight_layout()`関数を`show()`関数の前に追加するだけで、サブプロット間のスペースが自動的に調整されます。

まとめ

本記事では、Matplotlibを用いて複数の図を一つのウィンドウに表示する方法について、基本的な使い方から応用例まで詳しく解説しました。これを機に、データの可視化においてさまざまなレイアウトを試してみてはいかがでしょうか。

コメント

コメントする

目次