スキルUPの道しるべ

本サイトはプロモーションを含みます
上に戻る

【Python】Matplotlibで複数のグラフを並べて表示する方法を例付きでわかりやすく解説!

データの可視化は、データ分析や機械学習において非常に重要なスキルです。PythonのMatplotlibライブラリは、データを視覚化するための強力なツールですが、複数のグラフを一度に表示する方法を知っておくと、より効果的な分析が可能になります。

そこで、本記事では、Matplotlibを使って複数のグラフを並べる方法を、初心者向けにわかりやすく解説します。

Pythonデータサイエンスハンドブック』で基礎の確認から応用した使い方まで学ぶことができます。本記事とあわせて、ぜひ、チェックしてください。

1. Matplotlibの基本設定

まず、Matplotlibを使うために必要なインポートを行います。

import matplotlib.pyplot as plt
import numpy as np

このコードは、MatplotlibとNumPyをインポートしています。NumPyはデータ操作に便利なライブラリで、サンプルデータを生成する際に使用します。

2. 複数のグラフを並べるための基本的な方法

Matplotlibでは、subplotsubplotsを使って複数のグラフを並べることができます。まず、subplotを使った基本的な例を見てみましょう。

x = np.linspace(0, 10, 100)

plt.subplot(1, 2, 1)
plt.plot(x, np.sin(x))
plt.title("Sine Wave")

plt.subplot(1, 2, 2)
plt.plot(x, np.cos(x))
plt.title("Cosine Wave")

plt.show()

このコードは、1行2列のレイアウトで2つのグラフを表示します。

subplot(1, 2, 1)は、1行2列の1番目のグラフを指定し、subplot(1, 2, 2)は2番目のグラフを指定しています。

そして、show()でグラフが表示されます。

実行結果:

  • 左側にサイン波のグラフ、右側にコサイン波のグラフが並んで表示されます。

3. subplotsを使って複数のグラフを配置する

subplotよりも柔軟な方法として、subplotsを使用する方法があります。

これを使うと、同時に複数のグラフを管理しやすくなります。

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

x = np.linspace(0, 10, 100)

axs[0, 0].plot(x, np.sin(x))
axs[0, 0].set_title("Sine Wave")

axs[0, 1].plot(x, np.cos(x))
axs[0, 1].set_title("Cosine Wave")

axs[1, 0].plot(x, np.tan(x))
axs[1, 0].set_title("Tangent Wave")

axs[1, 1].plot(x, np.exp(x/10))
axs[1, 1].set_title("Exponential Function")

plt.tight_layout()
plt.show()

このコードでは、2行2列のグラフを作成しています。

subplotsは複数のグラフを一度に作成し、axs(axesの略)という配列で各グラフを個別に操作できるようにします。

tight_layout()はグラフ同士が重ならないように配置を調整します。

実行結果:

  • 2×2のグリッドに、サイン波、コサイン波、タンジェント波、指数関数のグラフが並べて表示されます。

4. グラフのレイアウトを調整する

複数のグラフを並べる際、レイアウトの調整が必要になることがあります。以下は、カスタマイズされたレイアウトの例です。

fig, axs = plt.subplots(2, 3, figsize=(10, 6))

x = np.linspace(0, 10, 100)

axs[0, 0].plot(x, np.sin(x))
axs[0, 0].set_title("Sine Wave")

axs[0, 1].plot(x, np.cos(x))
axs[0, 1].set_title("Cosine Wave")

axs[0, 2].plot(x, np.tan(x))
axs[0, 2].set_title("Tangent Wave")

axs[1, 0].plot(x, np.exp(x/10))
axs[1, 0].set_title("Exponential Function")

axs[1, 1].plot(x, np.log(x + 1))
axs[1, 1].set_title("Logarithmic Function")

axs[1, 2].plot(x, x**2)
axs[1, 2].set_title("Quadratic Function")

plt.tight_layout()
plt.show()

この例では、figsizeパラメータで図のサイズを指定し、2行3列のレイアウトに6つの異なるグラフを並べています。

これにより、グラフの見やすさが向上します。

実行結果:

  • 2行3列のグリッドに、6つの異なる関数のグラフが並べて表示されます。

関連・おすすめ書籍

5. まとめ

本記事では、Matplotlibを使って複数のグラフを並べる方法について解説しました。

subplotsubplotsを利用することで、簡単に複数のグラフを一度に表示することができます。

グラフの配置やレイアウトを工夫することで、より効果的なデータ可視化が可能です。

▼必見(ChatGPTを活用!おすすめAI副業)▼

今なら5000円分の特典あり!! dodgsonblog.com